Compare commits
115 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cef09a5551 | |||
| 6052c90ca8 | |||
| 8e6c6271fc | |||
| 6066f1d2df | |||
| d3bdd55c03 | |||
| 6a0d148968 | |||
| e1fa6d39ce | |||
| de42179513 | |||
| 9b1b4db8b0 | |||
| 03d8fb472c | |||
| b117a311ef | |||
| 55e9c18a37 | |||
| 7cfa3db4f6 | |||
| 63aa6db53a | |||
| 48e2a7db25 | |||
| ab62d9cdbf | |||
| 22d72b3be6 | |||
| 575016d11d | |||
| 8203dce091 | |||
| 0639277e4c | |||
| 5a9c23fac4 | |||
| 69ae1df12e | |||
| 17cc34c9c8 | |||
| a19993c804 | |||
| 03c0338cab | |||
| 52ea673a8f | |||
| 4c7cbf6a60 | |||
| 8f46fe3e97 | |||
| c65375f14f | |||
| f02df59eea | |||
| 141177fbf9 | |||
| fa4f4f9c1a | |||
| 7f7156b664 | |||
| af5491692e | |||
| ab57e94e2c | |||
| 6965038dee | |||
| e5230147f6 | |||
| 528a34206b | |||
| 434f7851f5 | |||
| 5b1b95772e | |||
| 81ea9f2d2c | |||
| d4755fc065 | |||
| 533507b25b | |||
| ad9f280e6c | |||
| c60b799c11 | |||
| 463622c0c6 | |||
| 172a226259 | |||
| c83864ce19 | |||
| bd80824ddf | |||
| b28674a452 | |||
| 9383b2d572 | |||
| d231fcb708 | |||
| 7f80e6d68b | |||
| a1cd215131 | |||
| 34941a25e9 | |||
| 9b0dc6b3af | |||
| afe7e94a6e | |||
| 37813c4dff | |||
| 2fd83daa46 | |||
| 3bf7088579 | |||
| d9c63d8557 | |||
| a4fe235317 | |||
| 1ff41650d5 | |||
| 1b8883be12 | |||
| e31d252eb0 | |||
| 0cccf8b25c | |||
| d5bf43b9b3 | |||
| 9f1f8ab32f | |||
| 2cbf17309f | |||
| 758f8459ec | |||
| 398fecb48c | |||
| c55fb403f8 | |||
| 06a138a4a4 | |||
| 3e0f03d12a | |||
| e814ede9d9 | |||
| bb41c50510 | |||
| c29ada51f1 | |||
| 1db27bc4f7 | |||
| 4dcaaa8fc9 | |||
| 027b7aeeb0 | |||
| 8e28683458 | |||
| 394ad27929 | |||
| 1820907990 | |||
| 5a9614f91a | |||
| f851e8f185 | |||
| bc04c2ea4a | |||
| 64cdd4b714 | |||
| 502fc9b1d1 | |||
| 0adcc6e0bc | |||
| efae1a8bd0 | |||
| 1eb86e935c | |||
| f0e0b3b7e2 | |||
| 3276afb4ec | |||
| a58ea82720 | |||
| 22c971c2fa | |||
| 5d2e062a84 | |||
| 97fcc5db56 | |||
| 2a21657363 | |||
| d867f3d470 | |||
| f43eadc581 | |||
| bf4cdaf0a7 | |||
| 4ccca55f2f | |||
| e6b757111a | |||
| c19badf635 | |||
| 247bb57c84 | |||
| abe20ca06f | |||
| 185e29e4e1 | |||
| 94aa1405e3 | |||
| 04bd03be1e | |||
| 84af8005f3 | |||
| 339cc787cc | |||
| ac5d169623 | |||
| c05b6b4c30 | |||
| 52c0f97ff6 | |||
| 85d411c81c |
Vendored
+5
-2
@@ -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 = [:]
|
||||||
|
|
||||||
@@ -15,7 +15,7 @@ for (int i = 0; i < targets.size(); i++) {
|
|||||||
sh "./scripts/setup-env.sh"
|
sh "./scripts/setup-env.sh"
|
||||||
}
|
}
|
||||||
stage("fetch $machine") {
|
stage("fetch $machine") {
|
||||||
sh "GIT_LOCAL_REF_DIR=/srv/git-cache/ ./scripts/fetch.sh krogoth"
|
sh "GIT_LOCAL_REF_DIR=/srv/git-cache/ ./scripts/fetch.sh master"
|
||||||
}
|
}
|
||||||
stage("build $machine") {
|
stage("build $machine") {
|
||||||
sh "MACHINE=${machine} ./scripts/build.sh"
|
sh "MACHINE=${machine} ./scripts/build.sh"
|
||||||
@@ -24,6 +24,9 @@ for (int i = 0; i < targets.size(); i++) {
|
|||||||
echo "Caught: ${e}"
|
echo "Caught: ${e}"
|
||||||
throw e
|
throw e
|
||||||
} finally {
|
} finally {
|
||||||
|
stage("push build cache $machine") {
|
||||||
|
sh "./scripts/publish-build-cache.sh master"
|
||||||
|
}
|
||||||
stage("cleanup $machine") {
|
stage("cleanup $machine") {
|
||||||
sh "./scripts/cleanup-env.sh"
|
sh "./scripts/cleanup-env.sh"
|
||||||
deleteDir()
|
deleteDir()
|
||||||
|
|||||||
+25
-67
@@ -1,13 +1,13 @@
|
|||||||
# add crate fetch support
|
##
|
||||||
inherit crate-fetch
|
## Purpose:
|
||||||
inherit rust-common
|
## This class is used by any recipes that are built using
|
||||||
|
## Cargo.
|
||||||
|
|
||||||
|
inherit cargo_common
|
||||||
|
|
||||||
# the binary we will use
|
# the binary we will use
|
||||||
CARGO = "cargo"
|
CARGO = "cargo"
|
||||||
|
|
||||||
# Where we download our registry and dependencies to
|
|
||||||
export CARGO_HOME = "${WORKDIR}/cargo_home"
|
|
||||||
|
|
||||||
# We need cargo to compile for the target
|
# We need cargo to compile for the target
|
||||||
BASEDEPENDS_append = " cargo-native"
|
BASEDEPENDS_append = " cargo-native"
|
||||||
|
|
||||||
@@ -22,71 +22,24 @@ B = "${S}"
|
|||||||
# where the issue occured
|
# where the issue occured
|
||||||
export RUST_BACKTRACE = "1"
|
export RUST_BACKTRACE = "1"
|
||||||
|
|
||||||
# The pkg-config-rs library used by cargo build scripts disables itself when
|
|
||||||
# cross compiling unless this is defined. We set up pkg-config appropriately
|
|
||||||
# for cross compilation, so tell it we know better than it.
|
|
||||||
export PKG_CONFIG_ALLOW_CROSS = "1"
|
|
||||||
|
|
||||||
cargo_do_configure () {
|
|
||||||
mkdir -p ${CARGO_HOME}
|
|
||||||
echo "paths = [" > ${CARGO_HOME}/config
|
|
||||||
|
|
||||||
for p in ${EXTRA_OECARGO_PATHS}; do
|
|
||||||
printf "\"%s\"\n" "$p"
|
|
||||||
done | sed -e 's/$/,/' >> ${CARGO_HOME}/config
|
|
||||||
echo "]" >> ${CARGO_HOME}/config
|
|
||||||
|
|
||||||
# Point cargo at our local mirror of the registry
|
|
||||||
cat <<- EOF >> ${CARGO_HOME}/config
|
|
||||||
[source.bitbake]
|
|
||||||
directory = "${CARGO_HOME}/bitbake"
|
|
||||||
|
|
||||||
[source.crates-io]
|
|
||||||
replace-with = "bitbake"
|
|
||||||
local-registry = "/nonexistant"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "[target.${HOST_SYS}]" >> ${CARGO_HOME}/config
|
|
||||||
echo "linker = '${RUST_TARGET_CCLD}'" >> ${CARGO_HOME}/config
|
|
||||||
if [ "${HOST_SYS}" != "${BUILD_SYS}" ]; then
|
|
||||||
echo "[target.${BUILD_SYS}]" >> ${CARGO_HOME}/config
|
|
||||||
echo "linker = '${RUST_BUILD_CCLD}'" >> ${CARGO_HOME}/config
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
RUSTFLAGS ??= ""
|
RUSTFLAGS ??= ""
|
||||||
CARGO_BUILD_FLAGS = "-v --target ${HOST_SYS} --release"
|
BUILD_MODE = "${@['--release', ''][d.getVar('DEBUG_BUILD') == '1']}"
|
||||||
|
CARGO_BUILD_FLAGS = "-v --target ${HOST_SYS} ${BUILD_MODE}"
|
||||||
|
|
||||||
# This is based on the content of CARGO_BUILD_FLAGS and generally will need to
|
# 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}"
|
||||||
bbnote "cargo = $(which cargo)"
|
export RUST_TARGET_PATH="${RUST_TARGET_PATH}"
|
||||||
bbnote "rustc = $(which rustc)"
|
bbnote "cargo = $(which ${CARGO})"
|
||||||
|
bbnote "rustc = $(which ${RUSTC})"
|
||||||
bbnote "${CARGO} build ${CARGO_BUILD_FLAGS} $@"
|
bbnote "${CARGO} build ${CARGO_BUILD_FLAGS} $@"
|
||||||
"${CARGO}" build ${CARGO_BUILD_FLAGS} "$@"
|
"${CARGO}" build ${CARGO_BUILD_FLAGS} "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
oe_cargo_fix_env () {
|
|
||||||
export CC="${RUST_TARGET_CC}"
|
|
||||||
export CFLAGS="${CFLAGS}"
|
|
||||||
export AR="${AR}"
|
|
||||||
export TARGET_CC="${RUST_TARGET_CC}"
|
|
||||||
export TARGET_CFLAGS="${CFLAGS}"
|
|
||||||
export TARGET_AR="${AR}"
|
|
||||||
export HOST_CC="${RUST_BUILD_CC}"
|
|
||||||
export HOST_CFLAGS="${BUILD_CFLAGS}"
|
|
||||||
export HOST_AR="${BUILD_AR}"
|
|
||||||
}
|
|
||||||
|
|
||||||
EXTRA_OECARGO_PATHS ??= ""
|
|
||||||
|
|
||||||
cargo_do_compile () {
|
cargo_do_compile () {
|
||||||
# prevent cargo from trying to fetch down new data
|
|
||||||
mkdir -p "${WORKDIR}/cargo_home/registry/index/github.com-1ecc6299db9ec823"
|
|
||||||
touch "${WORKDIR}/cargo_home/registry/index/github.com-1ecc6299db9ec823/.cargo-index-lock"
|
|
||||||
|
|
||||||
oe_cargo_fix_env
|
oe_cargo_fix_env
|
||||||
oe_cargo_build
|
oe_cargo_build
|
||||||
}
|
}
|
||||||
@@ -94,19 +47,24 @@ cargo_do_compile () {
|
|||||||
cargo_do_install () {
|
cargo_do_install () {
|
||||||
local have_installed=false
|
local have_installed=false
|
||||||
for tgt in "${B}/target/${CARGO_TARGET_SUBDIR}/"*; do
|
for tgt in "${B}/target/${CARGO_TARGET_SUBDIR}/"*; do
|
||||||
if [[ $tgt == *.so || $tgt == *.rlib ]]; then
|
case $tgt in
|
||||||
|
*.so|*.rlib)
|
||||||
install -d "${D}${rustlibdir}"
|
install -d "${D}${rustlibdir}"
|
||||||
install -m755 "$tgt" "${D}${rustlibdir}"
|
install -m755 "$tgt" "${D}${rustlibdir}"
|
||||||
have_installed=true
|
have_installed=true
|
||||||
elif [ -f "$tgt" ] && [ -x "$tgt" ]; then
|
;;
|
||||||
install -d "${D}${bindir}"
|
*)
|
||||||
install -m755 "$tgt" "${D}${bindir}"
|
if [ -f "$tgt" ] && [ -x "$tgt" ]; then
|
||||||
have_installed=true
|
install -d "${D}${bindir}"
|
||||||
fi
|
install -m755 "$tgt" "${D}${bindir}"
|
||||||
|
have_installed=true
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
done
|
done
|
||||||
if ! $have_installed; then
|
if ! $have_installed; then
|
||||||
die "Did not find anything to install"
|
die "Did not find anything to install"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPORT_FUNCTIONS do_configure do_compile do_install
|
EXPORT_FUNCTIONS do_compile do_install
|
||||||
|
|||||||
@@ -0,0 +1,74 @@
|
|||||||
|
##
|
||||||
|
## Purpose:
|
||||||
|
## This class is to support building with cargo. It
|
||||||
|
## must be different than cargo.bbclass because Rust
|
||||||
|
## now builds with Cargo but cannot use cargo.bbclass
|
||||||
|
## due to dependencies and assumptions in cargo.bbclass
|
||||||
|
## that Rust & Cargo are already installed. So this
|
||||||
|
## is used by cargo.bbclass and Rust
|
||||||
|
##
|
||||||
|
|
||||||
|
# add crate fetch support
|
||||||
|
inherit crate-fetch
|
||||||
|
inherit rust-common
|
||||||
|
|
||||||
|
# Where we download our registry and dependencies to
|
||||||
|
export CARGO_HOME = "${WORKDIR}/cargo_home"
|
||||||
|
|
||||||
|
# The pkg-config-rs library used by cargo build scripts disables itself when
|
||||||
|
# cross compiling unless this is defined. We set up pkg-config appropriately
|
||||||
|
# for cross compilation, so tell it we know better than it.
|
||||||
|
export PKG_CONFIG_ALLOW_CROSS = "1"
|
||||||
|
|
||||||
|
cargo_common_do_configure () {
|
||||||
|
mkdir -p ${CARGO_HOME}/bitbake
|
||||||
|
echo "paths = [" > ${CARGO_HOME}/config
|
||||||
|
|
||||||
|
for p in ${EXTRA_OECARGO_PATHS}; do
|
||||||
|
printf "\"%s\"\n" "$p"
|
||||||
|
done | sed -e 's/$/,/' >> ${CARGO_HOME}/config
|
||||||
|
echo "]" >> ${CARGO_HOME}/config
|
||||||
|
|
||||||
|
# Point cargo at our local mirror of the registry
|
||||||
|
cat <<- EOF >> ${CARGO_HOME}/config
|
||||||
|
[source.bitbake]
|
||||||
|
directory = "${CARGO_HOME}/bitbake"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
if [ "${EXTERNALSRC}" == "" ]; then
|
||||||
|
cat <<- EOF >> ${CARGO_HOME}/config
|
||||||
|
[source.crates-io]
|
||||||
|
replace-with = "bitbake"
|
||||||
|
local-registry = "/nonexistant"
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "[target.${HOST_SYS}]" >> ${CARGO_HOME}/config
|
||||||
|
echo "linker = '${RUST_TARGET_CCLD}'" >> ${CARGO_HOME}/config
|
||||||
|
if [ "${HOST_SYS}" != "${BUILD_SYS}" ]; then
|
||||||
|
echo "[target.${BUILD_SYS}]" >> ${CARGO_HOME}/config
|
||||||
|
echo "linker = '${RUST_BUILD_CCLD}'" >> ${CARGO_HOME}/config
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
oe_cargo_fix_env () {
|
||||||
|
export CC="${RUST_TARGET_CC}"
|
||||||
|
export CXX="${RUST_TARGET_CXX}"
|
||||||
|
export CFLAGS="${CFLAGS}"
|
||||||
|
export CXXFLAGS="${CXXFLAGS}"
|
||||||
|
export AR="${AR}"
|
||||||
|
export TARGET_CC="${RUST_TARGET_CC}"
|
||||||
|
export TARGET_CXX="${RUST_TARGET_CXX}"
|
||||||
|
export TARGET_CFLAGS="${CFLAGS}"
|
||||||
|
export TARGET_CFLAGS="${CXXFLAGS}"
|
||||||
|
export TARGET_AR="${AR}"
|
||||||
|
export HOST_CC="${RUST_BUILD_CC}"
|
||||||
|
export HOST_CXX="${RUST_BUILD_CXX}"
|
||||||
|
export HOST_CFLAGS="${BUILD_CFLAGS}"
|
||||||
|
export HOST_CXXFLAGS="${BUILD_CXXFLAGS}"
|
||||||
|
export HOST_AR="${BUILD_AR}"
|
||||||
|
}
|
||||||
|
|
||||||
|
EXTRA_OECARGO_PATHS ??= ""
|
||||||
|
|
||||||
|
EXPORT_FUNCTIONS do_configure
|
||||||
+58
-22
@@ -1,10 +1,8 @@
|
|||||||
inherit rust
|
inherit rust
|
||||||
|
|
||||||
DEPENDS_append = " patchelf-native"
|
RDEPENDS_${PN}_append_class-target += "${RUSTLIB_DEP}"
|
||||||
RDEPENDS_${PN} += "${RUSTLIB_DEP}"
|
|
||||||
|
|
||||||
RUSTFLAGS += "-C crate_hash=${BB_TASKHASH}"
|
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}"
|
|
||||||
EXTRA_OEMAKE += 'RUSTC_ARCHFLAGS="${RUSTC_ARCHFLAGS}"'
|
EXTRA_OEMAKE += 'RUSTC_ARCHFLAGS="${RUSTC_ARCHFLAGS}"'
|
||||||
|
|
||||||
# Some libraries alias with the standard library but libstd is configured to
|
# Some libraries alias with the standard library but libstd is configured to
|
||||||
@@ -17,9 +15,9 @@ OVERLAP_LIBS = "\
|
|||||||
rand \
|
rand \
|
||||||
"
|
"
|
||||||
def get_overlap_deps(d):
|
def get_overlap_deps(d):
|
||||||
deps = d.getVar("DEPENDS", True).split()
|
deps = d.getVar("DEPENDS").split()
|
||||||
overlap_deps = []
|
overlap_deps = []
|
||||||
for o in d.getVar("OVERLAP_LIBS", True).split():
|
for o in d.getVar("OVERLAP_LIBS").split():
|
||||||
l = len([o for dep in deps if (o + '-rs' in dep)])
|
l = len([o for dep in deps if (o + '-rs' in dep)])
|
||||||
if l > 0:
|
if l > 0:
|
||||||
overlap_deps.append(o)
|
overlap_deps.append(o)
|
||||||
@@ -31,13 +29,51 @@ OVERLAP_DEPS = "${@get_overlap_deps(d)}"
|
|||||||
RUSTC_PREFER_DYNAMIC = "-C prefer-dynamic"
|
RUSTC_PREFER_DYNAMIC = "-C prefer-dynamic"
|
||||||
RUSTC_FLAGS += "${RUSTC_PREFER_DYNAMIC}"
|
RUSTC_FLAGS += "${RUSTC_PREFER_DYNAMIC}"
|
||||||
|
|
||||||
CRATE_NAME ?= "${@d.getVar('BPN', True).replace('-rs', '').replace('-', '_')}"
|
CRATE_NAME ?= "${@d.getVar('BPN').replace('-rs', '').replace('-', '_')}"
|
||||||
BINNAME ?= "${BPN}"
|
BINNAME ?= "${BPN}"
|
||||||
LIBNAME ?= "lib${CRATE_NAME}-rs"
|
LIBNAME ?= "lib${CRATE_NAME}-rs"
|
||||||
CRATE_TYPE ?= "dylib"
|
CRATE_TYPE ?= "dylib"
|
||||||
BIN_SRC ?= "${S}/src/main.rs"
|
BIN_SRC ?= "${S}/src/main.rs"
|
||||||
LIB_SRC ?= "${S}/src/lib.rs"
|
LIB_SRC ?= "${S}/src/lib.rs"
|
||||||
|
|
||||||
|
rustbindest ?= "${bindir}"
|
||||||
|
rustlibdest ?= "${rustlibdir}"
|
||||||
|
RUST_RPATH_ABS ?= "${rustlibdir}:${rustlib}"
|
||||||
|
|
||||||
|
def relative_rpaths(paths, base):
|
||||||
|
relpaths = set()
|
||||||
|
for p in paths.split(':'):
|
||||||
|
if p == base:
|
||||||
|
relpaths.add('$ORIGIN')
|
||||||
|
continue
|
||||||
|
relpaths.add(os.path.join('$ORIGIN', os.path.relpath(p, base)))
|
||||||
|
return '-rpath=' + ':'.join(relpaths) if len(relpaths) else ''
|
||||||
|
|
||||||
|
RUST_LIB_RPATH_FLAGS ?= "${@relative_rpaths(d.getVar('RUST_RPATH_ABS', True), d.getVar('rustlibdest', True))}"
|
||||||
|
RUST_BIN_RPATH_FLAGS ?= "${@relative_rpaths(d.getVar('RUST_RPATH_ABS', True), d.getVar('rustbindest', True))}"
|
||||||
|
|
||||||
|
def libfilename(d):
|
||||||
|
if d.getVar('CRATE_TYPE', True) == 'dylib':
|
||||||
|
return d.getVar('LIBNAME', True) + '.so'
|
||||||
|
else:
|
||||||
|
return d.getVar('LIBNAME', True) + '.rlib'
|
||||||
|
|
||||||
|
def link_args(d, bin):
|
||||||
|
linkargs = []
|
||||||
|
if bin:
|
||||||
|
rpaths = d.getVar('RUST_BIN_RPATH_FLAGS', False)
|
||||||
|
else:
|
||||||
|
rpaths = d.getVar('RUST_LIB_RPATH_FLAGS', False)
|
||||||
|
if d.getVar('CRATE_TYPE', True) == 'dylib':
|
||||||
|
linkargs.append('-soname')
|
||||||
|
linkargs.append(libfilename(d))
|
||||||
|
if len(rpaths):
|
||||||
|
linkargs.append(rpaths)
|
||||||
|
if len(linkargs):
|
||||||
|
return ' '.join(['-Wl,' + arg for arg in linkargs])
|
||||||
|
else:
|
||||||
|
return ''
|
||||||
|
|
||||||
get_overlap_externs () {
|
get_overlap_externs () {
|
||||||
externs=
|
externs=
|
||||||
for dep in ${OVERLAP_DEPS}; do
|
for dep in ${OVERLAP_DEPS}; do
|
||||||
@@ -57,22 +93,22 @@ do_configure () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
oe_runrustc () {
|
oe_runrustc () {
|
||||||
|
export RUST_TARGET_PATH="${RUST_TARGET_PATH}"
|
||||||
bbnote ${RUSTC} ${RUSTC_ARCHFLAGS} ${RUSTC_FLAGS} "$@"
|
bbnote ${RUSTC} ${RUSTC_ARCHFLAGS} ${RUSTC_FLAGS} "$@"
|
||||||
"${RUSTC}" ${RUSTC_ARCHFLAGS} ${RUSTC_FLAGS} "$@"
|
"${RUSTC}" ${RUSTC_ARCHFLAGS} ${RUSTC_FLAGS} "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
oe_compile_rust_lib () {
|
oe_compile_rust_lib () {
|
||||||
[ "${CRATE_TYPE}" == "dylib" ] && suffix=so || suffix=rlib
|
|
||||||
rm -rf ${LIBNAME}.{rlib,so}
|
rm -rf ${LIBNAME}.{rlib,so}
|
||||||
local -a link_args
|
local -a link_args
|
||||||
if [ "${CRATE_TYPE}" == "dylib" ]; then
|
if [ -n '${@link_args(d, False)}' ]; then
|
||||||
link_args[0]="-C"
|
link_args[0]='-C'
|
||||||
link_args[1]="link-args=-Wl,-soname -Wl,${LIBNAME}.$suffix"
|
link_args[1]='link-args=${@link_args(d, False)}'
|
||||||
fi
|
fi
|
||||||
oe_runrustc $(get_overlap_externs) \
|
oe_runrustc $(get_overlap_externs) \
|
||||||
"${link_args[@]}" \
|
"${link_args[@]}" \
|
||||||
${LIB_SRC} \
|
${LIB_SRC} \
|
||||||
-o ${LIBNAME}.$suffix \
|
-o ${@libfilename(d)} \
|
||||||
--crate-name=${CRATE_NAME} --crate-type=${CRATE_TYPE} \
|
--crate-name=${CRATE_NAME} --crate-type=${CRATE_TYPE} \
|
||||||
"$@"
|
"$@"
|
||||||
}
|
}
|
||||||
@@ -80,20 +116,27 @@ oe_compile_rust_lib[vardeps] += "get_overlap_externs"
|
|||||||
|
|
||||||
oe_compile_rust_bin () {
|
oe_compile_rust_bin () {
|
||||||
rm -rf ${BINNAME}
|
rm -rf ${BINNAME}
|
||||||
oe_runrustc $(get_overlap_externs) ${BIN_SRC} -o ${BINNAME} "$@"
|
local -a link_args
|
||||||
|
if [ -n '${@link_args(d, True)}' ]; then
|
||||||
|
link_args[0]='-C'
|
||||||
|
link_args[1]='link-args=${@link_args(d, True)}'
|
||||||
|
fi
|
||||||
|
oe_runrustc $(get_overlap_externs) \
|
||||||
|
"${link_args[@]}" \
|
||||||
|
${BIN_SRC} -o ${BINNAME} "$@"
|
||||||
}
|
}
|
||||||
oe_compile_rust_bin[vardeps] += "get_overlap_externs"
|
oe_compile_rust_bin[vardeps] += "get_overlap_externs"
|
||||||
|
|
||||||
oe_install_rust_lib () {
|
oe_install_rust_lib () {
|
||||||
for lib in $(ls ${LIBNAME}.{so,rlib} 2>/dev/null); do
|
for lib in $(ls ${LIBNAME}.{so,rlib} 2>/dev/null); do
|
||||||
echo Installing $lib
|
echo Installing $lib
|
||||||
install -D -m 755 $lib ${D}/${rustlibdir}/$lib
|
install -D -m 755 $lib ${D}/${rustlibdest}/$lib
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
oe_install_rust_bin () {
|
oe_install_rust_bin () {
|
||||||
echo Installing ${BINNAME}
|
echo Installing ${BINNAME}
|
||||||
install -D -m 755 ${BINNAME} ${D}/${bindir}/${BINNAME}
|
install -D -m 755 ${BINNAME} ${D}/${rustbindest}/${BINNAME}
|
||||||
}
|
}
|
||||||
|
|
||||||
do_rust_bin_fixups() {
|
do_rust_bin_fixups() {
|
||||||
@@ -101,13 +144,6 @@ do_rust_bin_fixups() {
|
|||||||
echo "Strip rust note: $f"
|
echo "Strip rust note: $f"
|
||||||
${OBJCOPY} -R .note.rustc $f $f
|
${OBJCOPY} -R .note.rustc $f $f
|
||||||
done
|
done
|
||||||
|
|
||||||
for f in `find ${PKGD}`; do
|
|
||||||
file "$f" | grep -q ELF || continue
|
|
||||||
readelf -d "$f" | grep RUNPATH | grep -q rustlib || continue
|
|
||||||
echo "Set rpath:" "$f"
|
|
||||||
patchelf --set-rpath '$ORIGIN:'${rustlibdir}:${rustlib} "$f"
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
PACKAGE_PREPROCESS_FUNCS += "do_rust_bin_fixups"
|
PACKAGE_PREPROCESS_FUNCS += "do_rust_bin_fixups"
|
||||||
|
|
||||||
|
|||||||
@@ -5,11 +5,33 @@ FILES_${PN}-dev += "${rustlibdir}/*.rlib"
|
|||||||
FILES_${PN}-dbg += "${rustlibdir}/.debug"
|
FILES_${PN}-dbg += "${rustlibdir}/.debug"
|
||||||
|
|
||||||
RUSTLIB = "-L ${STAGING_LIBDIR}/rust"
|
RUSTLIB = "-L ${STAGING_LIBDIR}/rust"
|
||||||
RUSTFLAGS += "-C rpath ${RUSTLIB}"
|
RUST_DEBUG_REMAP = "--remap-path-prefix=from=${WORKDIR} --remap-path-prefix=to=/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_PANIC_STRATEGY ?= "unwind"
|
||||||
|
|
||||||
|
# Native builds are not effected by TCLIBC. Without this, rust-native
|
||||||
|
# thinks it's "target" (i.e. x86_64-linux) is a musl target.
|
||||||
|
RUST_LIBC = "${TCLIBC}"
|
||||||
|
RUST_LIBC_class-native = "glibc"
|
||||||
|
|
||||||
|
def determine_libc(d, thing):
|
||||||
|
'''Determine which libc something should target'''
|
||||||
|
|
||||||
|
# BUILD is never musl, TARGET may be musl or glibc,
|
||||||
|
# HOST could be musl, but only if a compiler is built to be run on
|
||||||
|
# target in which case HOST_SYS != BUILD_SYS.
|
||||||
|
if thing == 'TARGET':
|
||||||
|
libc = d.getVar('RUST_LIBC')
|
||||||
|
elif thing == 'BUILD' and (d.getVar('HOST_SYS') != d.getVar('BUILD_SYS')):
|
||||||
|
libc = d.getVar('RUST_LIBC')
|
||||||
|
else:
|
||||||
|
libc = d.getVar('RUST_LIBC_class-native')
|
||||||
|
|
||||||
|
return libc
|
||||||
|
|
||||||
# Responsible for taking Yocto triples and converting it to Rust triples
|
# 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
|
||||||
@@ -18,11 +40,11 @@ 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), True)
|
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), True)
|
os = d.getVar('{}_OS'.format(thing))
|
||||||
libc = d.getVar('TCLIBC', True)
|
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":
|
||||||
@@ -74,9 +96,11 @@ RUST_TARGET_SYS = "${@rust_base_triple(d, 'TARGET')}"
|
|||||||
# use those commands based on the prefix.
|
# use those commands based on the prefix.
|
||||||
WRAPPER_DIR = "${WORKDIR}/wrapper"
|
WRAPPER_DIR = "${WORKDIR}/wrapper"
|
||||||
RUST_BUILD_CC = "${WRAPPER_DIR}/build-rust-cc"
|
RUST_BUILD_CC = "${WRAPPER_DIR}/build-rust-cc"
|
||||||
|
RUST_BUILD_CXX = "${WRAPPER_DIR}/build-rust-cxx"
|
||||||
RUST_BUILD_CCLD = "${WRAPPER_DIR}/build-rust-ccld"
|
RUST_BUILD_CCLD = "${WRAPPER_DIR}/build-rust-ccld"
|
||||||
RUST_BUILD_AR = "${WRAPPER_DIR}/build-rust-ar"
|
RUST_BUILD_AR = "${WRAPPER_DIR}/build-rust-ar"
|
||||||
RUST_TARGET_CC = "${WRAPPER_DIR}/target-rust-cc"
|
RUST_TARGET_CC = "${WRAPPER_DIR}/target-rust-cc"
|
||||||
|
RUST_TARGET_CXX = "${WRAPPER_DIR}/target-rust-cxx"
|
||||||
RUST_TARGET_CCLD = "${WRAPPER_DIR}/target-rust-ccld"
|
RUST_TARGET_CCLD = "${WRAPPER_DIR}/target-rust-ccld"
|
||||||
RUST_TARGET_AR = "${WRAPPER_DIR}/target-rust-ar"
|
RUST_TARGET_AR = "${WRAPPER_DIR}/target-rust-ar"
|
||||||
|
|
||||||
@@ -97,15 +121,19 @@ create_wrapper () {
|
|||||||
do_rust_create_wrappers () {
|
do_rust_create_wrappers () {
|
||||||
mkdir -p "${WRAPPER_DIR}"
|
mkdir -p "${WRAPPER_DIR}"
|
||||||
|
|
||||||
# Yocto Build / Rust Host compiler
|
# Yocto Build / Rust Host C compiler
|
||||||
create_wrapper "${RUST_BUILD_CC}" "${BUILD_CC}"
|
create_wrapper "${RUST_BUILD_CC}" "${BUILD_CC}"
|
||||||
|
# Yocto Build / Rust Host C++ compiler
|
||||||
|
create_wrapper "${RUST_BUILD_CXX}" "${BUILD_CXX}"
|
||||||
# Yocto Build / Rust Host linker
|
# Yocto Build / Rust Host linker
|
||||||
create_wrapper "${RUST_BUILD_CCLD}" "${BUILD_CCLD}" "${BUILD_LDFLAGS}"
|
create_wrapper "${RUST_BUILD_CCLD}" "${BUILD_CCLD}" "${BUILD_LDFLAGS}"
|
||||||
# Yocto Build / Rust Host archiver
|
# Yocto Build / Rust Host archiver
|
||||||
create_wrapper "${RUST_BUILD_AR}" "${BUILD_AR}"
|
create_wrapper "${RUST_BUILD_AR}" "${BUILD_AR}"
|
||||||
|
|
||||||
# Yocto Target / Rust Target compiler
|
# Yocto Target / Rust Target C compiler
|
||||||
create_wrapper "${RUST_TARGET_CC}" "${CC}"
|
create_wrapper "${RUST_TARGET_CC}" "${CC}"
|
||||||
|
# Yocto Target / Rust Target C++ compiler
|
||||||
|
create_wrapper "${RUST_TARGET_CXX}" "${CXX}"
|
||||||
# Yocto Target / Rust Target linker
|
# Yocto Target / Rust Target linker
|
||||||
create_wrapper "${RUST_TARGET_CCLD}" "${CCLD}" "${LDFLAGS}"
|
create_wrapper "${RUST_TARGET_CCLD}" "${CCLD}" "${LDFLAGS}"
|
||||||
# Yocto Target / Rust Target archiver
|
# Yocto Target / Rust Target archiver
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ def rust_base_dep(d):
|
|||||||
# Taken from meta/classes/base.bbclass `base_dep_prepend` and modified to
|
# Taken from meta/classes/base.bbclass `base_dep_prepend` and modified to
|
||||||
# use rust instead of gcc
|
# use rust instead of gcc
|
||||||
deps = ""
|
deps = ""
|
||||||
if not d.getVar('INHIBIT_DEFAULT_RUST_DEPS', True):
|
if not d.getVar('INHIBIT_DEFAULT_RUST_DEPS'):
|
||||||
if (d.getVar('HOST_SYS', True) != d.getVar('BUILD_SYS', True)):
|
if (d.getVar('HOST_SYS') != d.getVar('BUILD_SYS')):
|
||||||
deps += " virtual/${TARGET_PREFIX}rust ${RUSTLIB_DEP}"
|
deps += " virtual/${TARGET_PREFIX}rust ${RUSTLIB_DEP}"
|
||||||
else:
|
else:
|
||||||
deps += " rust-native"
|
deps += " rust-native"
|
||||||
@@ -42,3 +42,4 @@ rustlib_suffix="${TUNE_ARCH}${TARGET_VENDOR}-${TARGET_OS}/rustlib/${HOST_SYS}/li
|
|||||||
rustlib_src="${prefix}/lib/${rustlib_suffix}"
|
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"
|
||||||
|
|||||||
@@ -8,12 +8,11 @@ BBFILES ?= ""
|
|||||||
BBLAYERS ?= " \
|
BBLAYERS ?= " \
|
||||||
##OEROOT##/meta-rust \
|
##OEROOT##/meta-rust \
|
||||||
##OEROOT##/meta \
|
##OEROOT##/meta \
|
||||||
##OEROOT##/meta-yocto \
|
##OEROOT##/meta-poky \
|
||||||
##OEROOT##/meta-yocto-bsp \
|
##OEROOT##/meta-yocto-bsp \
|
||||||
##OEROOT##/meta-openembedded/meta-oe \
|
##OEROOT##/meta-openembedded/meta-oe \
|
||||||
##OEROOT##/meta-openembedded/meta-networking \
|
##OEROOT##/meta-openembedded/meta-networking \
|
||||||
##OEROOT##/meta-openembedded/meta-python \
|
##OEROOT##/meta-openembedded/meta-python \
|
||||||
##OEROOT##/meta-openembedded/meta-ruby \
|
|
||||||
"
|
"
|
||||||
BBLAYERS_NON_REMOVABLE ?= " \
|
BBLAYERS_NON_REMOVABLE ?= " \
|
||||||
##OEROOT##/meta \
|
##OEROOT##/meta \
|
||||||
|
|||||||
@@ -8,5 +8,8 @@ BBFILE_COLLECTIONS += "rust-layer"
|
|||||||
BBFILE_PATTERN_rust-layer := "^${LAYERDIR}/"
|
BBFILE_PATTERN_rust-layer := "^${LAYERDIR}/"
|
||||||
BBFILE_PRIORITY_rust-layer = "7"
|
BBFILE_PRIORITY_rust-layer = "7"
|
||||||
|
|
||||||
|
LAYERDEPENDS_rust-layer = "core openembedded-layer"
|
||||||
|
LAYERSERIES_COMPAT_rust-layer = "rocko sumo"
|
||||||
|
|
||||||
# Override security flags
|
# Override security flags
|
||||||
require conf/distro/include/rust_security_flags.inc
|
require conf/distro/include/rust_security_flags.inc
|
||||||
|
|||||||
@@ -220,7 +220,7 @@ BB_DISKMON_DIRS = "\
|
|||||||
#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
|
#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
|
||||||
#file://.* file:///some/local/dir/sstate/PATH"
|
#file://.* file:///some/local/dir/sstate/PATH"
|
||||||
|
|
||||||
SSTATE_MIRRORS ?= "file://.* http://build-cache.asterius.io/sstate/PATH;downloadfilename=PATH \n"
|
SSTATE_MIRRORS ?= "file://.* http://build-cache.asterius.io/master/sstate-cache/PATH;downloadfilename=PATH \n"
|
||||||
|
|
||||||
SOURCE_MIRROR_URL ?= "http://build-cache.asterius.io/downloads/"
|
SOURCE_MIRROR_URL ?= "http://build-cache.asterius.io/downloads/"
|
||||||
INHERIT += "own-mirrors rm_work"
|
INHERIT += "own-mirrors rm_work"
|
||||||
|
|||||||
+4
-110
@@ -35,21 +35,6 @@ class Crate(Wget):
|
|||||||
|
|
||||||
"""Class to fetch crates via wget"""
|
"""Class to fetch crates via wget"""
|
||||||
|
|
||||||
def _cargo_path(self, rootdir, component):
|
|
||||||
# TODO: make this less brittle
|
|
||||||
# This can go away entirely once we can build a cargo that supports source-replacement
|
|
||||||
repo = "github.com-1ecc6299db9ec823"
|
|
||||||
return os.path.join(rootdir, "cargo_home", "registry", component, repo)
|
|
||||||
|
|
||||||
def _cargo_src_path(self, rootdir):
|
|
||||||
return self._cargo_path(rootdir, "src")
|
|
||||||
|
|
||||||
def _cargo_index_path(self, rootdir):
|
|
||||||
return self._cargo_path(rootdir, "index")
|
|
||||||
|
|
||||||
def _cargo_cache_path(self, rootdir):
|
|
||||||
return self._cargo_path(rootdir, "cache")
|
|
||||||
|
|
||||||
def _cargo_bitbake_path(self, rootdir):
|
def _cargo_bitbake_path(self, rootdir):
|
||||||
return os.path.join(rootdir, "cargo_home", "bitbake")
|
return os.path.join(rootdir, "cargo_home", "bitbake")
|
||||||
|
|
||||||
@@ -57,7 +42,7 @@ class Crate(Wget):
|
|||||||
"""
|
"""
|
||||||
Check to see if a given url is for this fetcher
|
Check to see if a given url is for this fetcher
|
||||||
"""
|
"""
|
||||||
return ud.type in ['crate', 'crate-index']
|
return ud.type in ['crate']
|
||||||
|
|
||||||
def recommends_checksum(self, urldata):
|
def recommends_checksum(self, urldata):
|
||||||
return False
|
return False
|
||||||
@@ -69,8 +54,6 @@ class Crate(Wget):
|
|||||||
|
|
||||||
if ud.type == 'crate':
|
if ud.type == 'crate':
|
||||||
self._crate_urldata_init(ud, d)
|
self._crate_urldata_init(ud, d)
|
||||||
elif ud.type == 'crate-index':
|
|
||||||
self._index_urldata_init(ud, d)
|
|
||||||
|
|
||||||
super(Crate, self).urldata_init(ud, d)
|
super(Crate, self).urldata_init(ud, d)
|
||||||
|
|
||||||
@@ -102,71 +85,15 @@ class Crate(Wget):
|
|||||||
|
|
||||||
logger.debug(2, "Fetching %s to %s" % (ud.url, ud.parm['downloadfilename']))
|
logger.debug(2, "Fetching %s to %s" % (ud.url, ud.parm['downloadfilename']))
|
||||||
|
|
||||||
def _index_urldata_init(self, ud, d):
|
|
||||||
"""
|
|
||||||
Sets up the download for the cargo index
|
|
||||||
"""
|
|
||||||
|
|
||||||
# URL syntax is: crate-index://REV
|
|
||||||
# break the URL apart by /
|
|
||||||
parts = ud.url.split('/')
|
|
||||||
if len(parts) != 4:
|
|
||||||
raise bb.fetch2.ParameterError("Invalid URL: Must be crate-index://HOST/REV", ud.url)
|
|
||||||
|
|
||||||
# last field is the rev
|
|
||||||
rev = parts[3]
|
|
||||||
host = parts[2]
|
|
||||||
|
|
||||||
if host == 'crates.io':
|
|
||||||
host = 'github.com/rust-lang/crates.io-index'
|
|
||||||
|
|
||||||
ud.url = "https://%s/archive/%s.tar.gz" % (host, rev)
|
|
||||||
ud.parm['downloadfilename'] = 'cargo-index-%s.tar.gz' % rev
|
|
||||||
ud.parm['name'] = "index"
|
|
||||||
|
|
||||||
logger.debug(2, "Fetching crate index %s" % ud.url)
|
|
||||||
|
|
||||||
def unpack(self, ud, rootdir, d):
|
def unpack(self, ud, rootdir, d):
|
||||||
"""
|
"""
|
||||||
Uses the crate to build the necessary paths for cargo to utilize it
|
Uses the crate to build the necessary paths for cargo to utilize it
|
||||||
"""
|
"""
|
||||||
if ud.type == 'crate-index':
|
if ud.type == 'crate':
|
||||||
return self._index_unpack(ud, rootdir, d)
|
|
||||||
elif ud.type == 'crate':
|
|
||||||
return self._crate_unpack(ud, rootdir, d)
|
return self._crate_unpack(ud, rootdir, d)
|
||||||
else:
|
else:
|
||||||
super(Crate, self).unpack(ud, rootdir, d)
|
super(Crate, self).unpack(ud, rootdir, d)
|
||||||
|
|
||||||
def _index_unpack(self, ud, rootdir, d):
|
|
||||||
"""
|
|
||||||
Unpacks the index
|
|
||||||
"""
|
|
||||||
thefile = ud.localpath
|
|
||||||
|
|
||||||
cargo_index = self._cargo_index_path(rootdir)
|
|
||||||
|
|
||||||
cmd = "tar -xz --no-same-owner --strip-components 1 -f %s -C %s" % (thefile, cargo_index)
|
|
||||||
|
|
||||||
# change to the rootdir to unpack but save the old working dir
|
|
||||||
save_cwd = os.getcwd()
|
|
||||||
os.chdir(rootdir)
|
|
||||||
|
|
||||||
# ensure we've got these paths made
|
|
||||||
bb.utils.mkdirhier(cargo_index)
|
|
||||||
|
|
||||||
# path it
|
|
||||||
path = d.getVar('PATH', True)
|
|
||||||
if path:
|
|
||||||
cmd = "PATH=\"%s\" %s" % (path, cmd)
|
|
||||||
bb.note("Unpacking %s to %s/" % (thefile, cargo_index))
|
|
||||||
|
|
||||||
ret = subprocess.call(cmd, preexec_fn=subprocess_setup, shell=True)
|
|
||||||
|
|
||||||
os.chdir(save_cwd)
|
|
||||||
|
|
||||||
if ret != 0:
|
|
||||||
raise UnpackError("Unpack command %s failed with return value %s" % (cmd, ret), ud.url)
|
|
||||||
|
|
||||||
def _crate_unpack(self, ud, rootdir, d):
|
def _crate_unpack(self, ud, rootdir, d):
|
||||||
"""
|
"""
|
||||||
Unpacks a crate
|
Unpacks a crate
|
||||||
@@ -180,12 +107,10 @@ class Crate(Wget):
|
|||||||
save_cwd = os.getcwd()
|
save_cwd = os.getcwd()
|
||||||
os.chdir(rootdir)
|
os.chdir(rootdir)
|
||||||
|
|
||||||
pn = d.getVar('BPN', True)
|
pn = d.getVar('BPN')
|
||||||
if pn == ud.parm.get('name'):
|
if pn == ud.parm.get('name'):
|
||||||
cmd = "tar -xz --no-same-owner -f %s" % thefile
|
cmd = "tar -xz --no-same-owner -f %s" % thefile
|
||||||
else:
|
else:
|
||||||
self._crate_unpack_old_layout(ud, rootdir, d)
|
|
||||||
|
|
||||||
cargo_bitbake = self._cargo_bitbake_path(rootdir)
|
cargo_bitbake = self._cargo_bitbake_path(rootdir)
|
||||||
|
|
||||||
cmd = "tar -xz --no-same-owner -f %s -C %s" % (thefile, cargo_bitbake)
|
cmd = "tar -xz --no-same-owner -f %s -C %s" % (thefile, cargo_bitbake)
|
||||||
@@ -202,7 +127,7 @@ class Crate(Wget):
|
|||||||
metadata['package'] = tarhash
|
metadata['package'] = tarhash
|
||||||
|
|
||||||
# path it
|
# path it
|
||||||
path = d.getVar('PATH', True)
|
path = d.getVar('PATH')
|
||||||
if path:
|
if path:
|
||||||
cmd = "PATH=\"%s\" %s" % (path, cmd)
|
cmd = "PATH=\"%s\" %s" % (path, cmd)
|
||||||
bb.note("Unpacking %s to %s/" % (thefile, os.getcwd()))
|
bb.note("Unpacking %s to %s/" % (thefile, os.getcwd()))
|
||||||
@@ -222,34 +147,3 @@ class Crate(Wget):
|
|||||||
mdpath = os.path.join(bbpath, cratepath, mdfile)
|
mdpath = os.path.join(bbpath, cratepath, mdfile)
|
||||||
with open(mdpath, "w") as f:
|
with open(mdpath, "w") as f:
|
||||||
json.dump(metadata, f)
|
json.dump(metadata, f)
|
||||||
|
|
||||||
|
|
||||||
def _crate_unpack_old_layout(self, ud, rootdir, d):
|
|
||||||
"""
|
|
||||||
Unpacks a crate in the old location that tried to emulate
|
|
||||||
the Cargo registry layout.
|
|
||||||
"""
|
|
||||||
thefile = ud.localpath
|
|
||||||
|
|
||||||
cargo_src = self._cargo_src_path(rootdir)
|
|
||||||
cargo_cache = self._cargo_cache_path(rootdir)
|
|
||||||
|
|
||||||
cmd = "tar -xz --no-same-owner -f %s -C %s" % (thefile, cargo_src)
|
|
||||||
|
|
||||||
# ensure we've got these paths made
|
|
||||||
bb.utils.mkdirhier(cargo_cache)
|
|
||||||
bb.utils.mkdirhier(cargo_src)
|
|
||||||
|
|
||||||
bb.note("Copying %s to %s/" % (thefile, cargo_cache))
|
|
||||||
shutil.copy(thefile, cargo_cache)
|
|
||||||
|
|
||||||
# path it
|
|
||||||
path = d.getVar('PATH', True)
|
|
||||||
if path:
|
|
||||||
cmd = "PATH=\"%s\" %s" % (path, cmd)
|
|
||||||
bb.note("Unpacking %s to %s/" % (thefile, os.getcwd()))
|
|
||||||
|
|
||||||
ret = subprocess.call(cmd, preexec_fn=subprocess_setup, shell=True)
|
|
||||||
|
|
||||||
if ret != 0:
|
|
||||||
raise UnpackError("Unpack command %s failed with return value %s" % (cmd, ret), ud.url)
|
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
DESCRIPTION = "Fast multiple substring searching with finite state machines."
|
|
||||||
HOMEPAGE = "https://github.com/BurntSushi/aho-corasick"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=8d0d0aa488af0ab9aafa3b85a7fc8e12"
|
|
||||||
DEPENDS = "memchr-rs"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/BurntSushi/aho-corasick.git;protocol=https"
|
|
||||||
SRCREV = "e1bca33dcc060d587e802320a79cbb035f37f8fa"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
DESCRIPTION = "A macro to generate structures which behave like bitflags."
|
|
||||||
HOMEPAGE = "https://github.com/rust-lang-nursery/bitflags"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-lang-nursery/bitflags.git;protocol=https"
|
|
||||||
SRCREV = "41aa413a7c30d70b93b44ab5447276c381ef249e"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
LIB_SRC = "${S}/src/lib.rs"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
DESCRIPTION = "A (mostly) pure-Rust implementation of various common cryptographic algorithms."
|
|
||||||
HOMEPAGE = "https://github.com/DaGenix/rust-crypto/"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=4311034aa04489226c1fc3f816dbfb5a \
|
|
||||||
file://LICENSE-APACHE;md5=a02fef6dccf840318474c108a8281b77 \
|
|
||||||
"
|
|
||||||
DEPENDS = "\
|
|
||||||
libc-rs \
|
|
||||||
time-rs \
|
|
||||||
rand-rs \
|
|
||||||
rustc-serialize-rs \
|
|
||||||
"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/DaGenix/rust-crypto.git;protocol=https"
|
|
||||||
SRCREV = "5571cb41690b9cee12025192393ea7df0eddc21b"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
DESCRIPTION = "DBus binding for rust"
|
|
||||||
HOMEPAGE = "https://github.com/diwic/dbus-rs"
|
|
||||||
LICENSE = "Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
|
|
||||||
DEPENDS = "libc-rs dbus"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/diwic/dbus-rs.git;protocol=https"
|
|
||||||
SRCREV = "d23c8b7fecd5a8e82131893250a5ac376799faff"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
DESCRIPTION = "A copy of libstd's debug builders for use before they stabilize"
|
|
||||||
HOMEPAGE = "https://github.com/sfackler/rust-debug-builders"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "file://Cargo.toml;md5=97a131dc4ae910d242387f2c9d1a2ce8"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/sfackler/rust-debug-builders.git;protocol=https"
|
|
||||||
SRCREV = "c6943b72c7808ddaa151d08b824525cc7420cb9b"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
DESCRIPTION = "getopts-like option parsing"
|
|
||||||
HOMEPAGE = "https://github.com/rust-lang/getopts"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
"
|
|
||||||
DEPENDS = "log-rs"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-lang/getopts.git;protocol=https"
|
|
||||||
SRCREV = "a13c62b7d860b6d370129ebb972bf5e0373c5be7"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
DESCRIPTION = "A macro for declaring lazily evaluated statics in Rust."
|
|
||||||
HOMEPAGE = "https://github.com/rust-lang-nursery/lazy-static.rs"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE;md5=5795ddb4df1d696d439b6667081cffc9 \
|
|
||||||
"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-lang-nursery/lazy-static.rs.git;protocol=https"
|
|
||||||
SRCREV = "ffe65c818474f863945ca535c0e53f3b8b848ff7"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
LIB_SRC = "${S}/src/lib.rs"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
DESCRIPTION = "A Rust library with native bindings to the types and functions commonly found on various systems, including libc."
|
|
||||||
HOMEPAGE = "https://github.com/rust-lang/libc"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-lang/libc.git;protocol=https"
|
|
||||||
SRCREV = "f54b9c90ee68889181472d4d4a5dd9e43d0e5318"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
LIB_SRC = "${S}/src/lib.rs"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib --cfg feature='"cargo-build"'
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
DESCRIPTION = "An logging implementation for `log` which is configured via an environment variable"
|
|
||||||
DEPENDS = "regex-rs log-rs"
|
|
||||||
|
|
||||||
require log.inc
|
|
||||||
|
|
||||||
LIB_SRC = "${S}/env/src/lib.rs"
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
DESCRIPTION = "A Rust library providing a lightweight logging facade"
|
|
||||||
DEPENDS = "libc-rs"
|
|
||||||
|
|
||||||
require log.inc
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
HOMEPAGE = "https://github.com/rust-lang/log"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-lang/log.git;protocol=https"
|
|
||||||
SRCREV = "5453e16166ec451afc9738978ca01f162127ebbe"
|
|
||||||
PV = "0.3.1"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
DESCRIPTION = "Safe interface to memchr"
|
|
||||||
HOMEPAGE = "https://github.com/BurntSushi/rust-memchr"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=8d0d0aa488af0ab9aafa3b85a7fc8e12"
|
|
||||||
DEPENDS = "libc-rs"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/BurntSushi/rust-memchr.git;protocol=https"
|
|
||||||
SRCREV = "4f9a13f95e6e00f2847c093c56b41b9c1d58d3c4"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
require num.inc
|
|
||||||
|
|
||||||
DEPENDS += "num-traits"
|
|
||||||
|
|
||||||
LIB_SRC = "${S}/integer/src/lib.rs"
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
require num.inc
|
|
||||||
|
|
||||||
DEPENDS += "num-traits"
|
|
||||||
DEPENDS += "num-integer"
|
|
||||||
|
|
||||||
LIB_SRC = "${S}/iter/src/lib.rs"
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
require num.inc
|
|
||||||
|
|
||||||
LIB_SRC = "${S}/traits/src/lib.rs"
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
DESCRIPTION = "A collection of numeric types and traits for Rust, including bigint, complex, rational, range iterators, generic integers, and more!"
|
|
||||||
HOMEPAGE = "https://github.com/rust-num/num"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-num/num.git;protocol=https"
|
|
||||||
SRCREV = "d9f08cb148cc686ec407c1e42fbd4536cde6ac82"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
require num.inc
|
|
||||||
|
|
||||||
DEPENDS += "\
|
|
||||||
num-traits \
|
|
||||||
num-integer \
|
|
||||||
num-iter \
|
|
||||||
"
|
|
||||||
|
|
||||||
LIB_SRC = "${S}/src/lib.rs"
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
DESCRIPTION = "Random number generators and other randomness functionality."
|
|
||||||
HOMEPAGE = "https://github.com/rust-lang/rand"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
"
|
|
||||||
DEPENDS = "libc-rs"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-lang/rand.git;protocol=https"
|
|
||||||
SRCREV = "f872fda5fb8fb899a837ee9eee0332076a8f5300"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
DESCRIPTION = "An implementation of regular expressions for Rust"
|
|
||||||
DEPENDS = "\
|
|
||||||
aho-corasick-rs \
|
|
||||||
memchr-rs \
|
|
||||||
regex-syntax-rs \
|
|
||||||
"
|
|
||||||
|
|
||||||
require regex.inc
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
DESCRIPTION = "A regular expression parser"
|
|
||||||
|
|
||||||
require regex.inc
|
|
||||||
|
|
||||||
LIB_SRC = "${S}/regex-syntax/src/lib.rs"
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
HOMEPAGE = "https://github.com/rust-lang/regex"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
"
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-lang/regex.git;protocol=https"
|
|
||||||
SRCREV = "c9e6781a6845478aa2d8ebc86972755f854fdbe0"
|
|
||||||
PV = "0.1.38"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
DESCRIPTION = "Generic serialization/deserialization support"
|
|
||||||
HOMEPAGE = "https://github.com/rust-lang/rustc-serialize"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-lang/rustc-serialize.git;protocol=https"
|
|
||||||
SRCREV = "64b38a1f31a9af6eabf2894437aa5ccc3e457e68"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
DESCRIPTION = "Utilities for working with time-related functions in Rust"
|
|
||||||
HOMEPAGE = "https://github.com/rust-lang/time"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM = "\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
"
|
|
||||||
DEPENDS = "libc-rs"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/rust-lang/time.git;protocol=https"
|
|
||||||
SRCREV = "32b212b877b836dbfdc97af5674d91672e70ecbd"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
rm -rf time_helpers.o libtimehelpers.a
|
|
||||||
${CC} ${S}/src/time_helpers.c -fPIC -c -o time_helpers.o
|
|
||||||
${AR} rcs libtime_helpers.a time_helpers.o
|
|
||||||
oe_compile_rust_lib -L native=$PWD -l static=time_helpers
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
DESCRIPTION = "FFI bindings to libudev"
|
|
||||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
|
||||||
DEPENDS = "libudev-sys-rs"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/dcuddeback/libudev-rs.git;protocol=https"
|
|
||||||
SRCREV = "d55763c626790e2e8724947503238731843a969a"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
DESCRIPTION = "FFI bindings to libudev"
|
|
||||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
|
||||||
|
|
||||||
DEPENDS += "libudev-sys-rs"
|
|
||||||
DEPENDS += "libc-rs"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/dcuddeback/libudev-rs.git;protocol=https"
|
|
||||||
SRCREV = "3da791245f206d0cf5a856531c574b8646b0f059"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
DESCRIPTION = "FFI bindings to libudev"
|
|
||||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
|
||||||
DEPENDS = "libc-rs udev"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/dcuddeback/libudev-sys.git;protocol=https"
|
|
||||||
SRCREV = "14c24afc61e3315dffddab2c7f36999a16a002d8"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
RUSTC_FLAGS += "-ludev"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
DESCRIPTION = "FFI bindings to libudev"
|
|
||||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
|
||||||
DEPENDS = "libc-rs udev"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/dcuddeback/libudev-sys.git;protocol=https"
|
|
||||||
SRCREV = "c49163f87d4d109ec21bcf8f8c51db560ed31b22"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
RUSTC_FLAGS += "-ludev"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
DESCRIPTION = "Unix domain socket bindings for Rust"
|
|
||||||
HOMEPAGE = "https://github.com/sfackler/rust-unix-socket"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bde86283c1fd74e84ebc3cf6dd7011d0"
|
|
||||||
DEPENDS = "libc-rs debug-builders-rs"
|
|
||||||
|
|
||||||
inherit rust-bin
|
|
||||||
|
|
||||||
SRC_URI = "git://github.com/sfackler/rust-unix-socket.git;protocol=https"
|
|
||||||
SRCREV = "d0f47ae888267a718072c3be5eed42ba1f637097"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_compile_rust_lib
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_install_rust_lib
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
require libgit2.inc
|
|
||||||
SRC_URI = "https://github.com/libgit2/libgit2/archive/v${PV}.tar.gz"
|
|
||||||
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
SUMMARY = "the Git linkable library"
|
|
||||||
HOMEPAGE = "http://libgit2.github.com/"
|
|
||||||
LICENSE = "GPL-2.0-with-GCC-exception"
|
|
||||||
|
|
||||||
DEPENDS = "curl openssl zlib libssh2"
|
|
||||||
|
|
||||||
inherit cmake
|
|
||||||
|
|
||||||
# CLAR = tests, needs python-native
|
|
||||||
EXTRA_OECMAKE = "\
|
|
||||||
-DTHREADSAFE=ON \
|
|
||||||
-DBUILD_CLAR=OFF \
|
|
||||||
-DSHA1_TYPE="builtin" \
|
|
||||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
||||||
-DBUILD_SHARED_LIBS=OFF \
|
|
||||||
-DBUILD_EXAMPLES=OFF \
|
|
||||||
"
|
|
||||||
|
|
||||||
CFLAGS_append .= " -fPIC"
|
|
||||||
|
|
||||||
BBCLASSEXTEND = "native"
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
LIC_FILES_CHKSUM = "file://COPYING;md5=34197a479f637beb9e09e56893f48bc2"
|
|
||||||
SRC_URI[md5sum] = "3674ca2d40388b1175e25b6f5a3a82ad"
|
|
||||||
SRC_URI[sha256sum] = "60198cbb34066b9b5c1613d15c0479f6cd25f4aef42f7ec515cd1cc13a77fede"
|
|
||||||
require libgit2-release.inc
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
# meta-oe/recipes-support/libssh2
|
|
||||||
BBCLASSEXTEND = "native"
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
CARGO_SNAPSHOT = "cargo-0.26.0-${RUST_BUILD_SYS}"
|
||||||
|
|
||||||
|
# TODO: Add hashes for other architecture toolchains as well. Make a script?
|
||||||
|
SRC_URI[cargo-snapshot-x86_64.md5sum] = "b0de62d86f0ba71078471d09916873c6"
|
||||||
|
SRC_URI[cargo-snapshot-x86_64.sha256sum] = "9ba227f2364f618dc9415dacf3a5dce17458e1cb9f6d4fe860416cb68db894e4"
|
||||||
|
|
||||||
|
SRC_URI += "\
|
||||||
|
https://static.rust-lang.org/dist/${CARGO_SNAPSHOT}.tar.gz;name=cargo-snapshot-${BUILD_ARCH} \
|
||||||
|
"
|
||||||
|
|
||||||
|
# When building cargo-native we don't have a built cargo to use so we must use
|
||||||
|
# the snapshot to bootstrap the build of cargo
|
||||||
|
CARGO_class-native = "${WORKDIR}/${CARGO_SNAPSHOT}/cargo/bin/cargo"
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
|
|
||||||
CARGO_SNAPSHOT = "2016-09-01/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz;downloadfilename=cargo-nightly-x86_64-unknown-linux-gnu-2016-09-01.tar.gz"
|
|
||||||
SRC_URI[md5sum] = "d41ebf79290a7c9c9e5df87cb27e5091"
|
|
||||||
SRC_URI[sha256sum] = "365e5cad79512d244b8ced32f8e5b86a710fc6c17f0d0f5f744b8058ef6dc756"
|
|
||||||
@@ -1,59 +1,12 @@
|
|||||||
inherit cargo
|
|
||||||
inherit patch
|
|
||||||
|
|
||||||
SUMMARY = "Cargo downloads your Rust project's dependencies and builds your project"
|
|
||||||
HOMEPAGE = "http://crates.io"
|
|
||||||
SECTION = "devel"
|
SECTION = "devel"
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
|
|
||||||
DEPENDS = "openssl zlib libgit2 curl ca-certificates libssh2"
|
DEPENDS = "openssl zlib libgit2 curl ca-certificates libssh2"
|
||||||
|
|
||||||
CARGO_INDEX_COMMIT = "6127fc24b0b6fe73fe4d339817fbf000b9a798a2"
|
LIC_FILES_CHKSUM += " \
|
||||||
|
file://LICENSE-THIRD-PARTY;md5=892ea68b169e69cfe75097fc38a15b56 \
|
||||||
SRC_URI = "\
|
|
||||||
http://static-rust-lang-org.s3.amazonaws.com/cargo-dist/${CARGO_SNAPSHOT} \
|
|
||||||
crate-index://crates.io/${CARGO_INDEX_COMMIT} \
|
|
||||||
"
|
"
|
||||||
|
|
||||||
B = "${S}"
|
|
||||||
|
|
||||||
# Used in libgit2-sys's build.rs, needed for pkg-config to be used
|
# Used in libgit2-sys's build.rs, needed for pkg-config to be used
|
||||||
export LIBGIT2_SYS_USE_PKG_CONFIG = "1"
|
export LIBGIT2_SYS_USE_PKG_CONFIG = "1"
|
||||||
|
|
||||||
# cargo's configure doesn't recognize --disable-static, so remove it.
|
|
||||||
DISABLE_STATIC = ""
|
|
||||||
|
|
||||||
do_configure () {
|
|
||||||
"${S}/configure" \
|
|
||||||
"--prefix=${prefix}" \
|
|
||||||
"--build=${BUILD_SYS}" \
|
|
||||||
"--host=${HOST_SYS}" \
|
|
||||||
"--target=${TARGET_SYS}" \
|
|
||||||
"--localstatedir=${localstatedir}" \
|
|
||||||
"--sysconfdir=${sysconfdir}" \
|
|
||||||
"--datadir=${datadir}" \
|
|
||||||
"--infodir=${infodir}" \
|
|
||||||
"--mandir=${mandir}" \
|
|
||||||
"--libdir=${libdir}" \
|
|
||||||
"--disable-verify-install" \
|
|
||||||
${EXTRA_OECONF} \
|
|
||||||
|| die "Could not configure cargo"
|
|
||||||
|
|
||||||
cargo_do_configure
|
|
||||||
}
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_cargo_fix_env
|
|
||||||
|
|
||||||
rm -rf target/snapshot
|
|
||||||
mkdir -p target
|
|
||||||
cp -R ${WORKDIR}/cargo-nightly-x86_64-unknown-linux-gnu/cargo target/snapshot
|
|
||||||
|
|
||||||
oe_runmake VERBOSE=1
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
oe_runmake prepare-image-${TARGET_SYS} IMGDIR_${TARGET_SYS}="${D}${prefix}"
|
|
||||||
}
|
|
||||||
|
|
||||||
BBCLASSEXTEND = "native"
|
BBCLASSEXTEND = "native"
|
||||||
|
|||||||
@@ -1,105 +0,0 @@
|
|||||||
require cargo-snapshot.inc
|
|
||||||
require cargo.inc
|
|
||||||
|
|
||||||
SRC_URI += " \
|
|
||||||
git://github.com/rust-lang/cargo.git;protocol=https;name=cargo \
|
|
||||||
file://0001-disable-cargo-snapshot-fetch.patch \
|
|
||||||
file://0001-Never-update-the-registry-index.patch \
|
|
||||||
crate://crates.io/advapi32-sys/0.1.2 \
|
|
||||||
crate://crates.io/bufstream/0.1.1 \
|
|
||||||
crate://crates.io/crossbeam/0.2.8 \
|
|
||||||
crate://crates.io/docopt/0.6.78 \
|
|
||||||
crate://crates.io/env_logger/0.3.2 \
|
|
||||||
crate://crates.io/filetime/0.1.10 \
|
|
||||||
crate://crates.io/flate2/0.2.13 \
|
|
||||||
crate://crates.io/fs2/0.2.3 \
|
|
||||||
crate://crates.io/glob/0.2.11 \
|
|
||||||
crate://crates.io/hamcrest/0.1.0 \
|
|
||||||
crate://crates.io/kernel32-sys/0.2.1 \
|
|
||||||
crate://crates.io/libc/0.2.8 \
|
|
||||||
crate://crates.io/log/0.3.5 \
|
|
||||||
crate://crates.io/num_cpus/0.2.11 \
|
|
||||||
crate://crates.io/regex/0.1.58 \
|
|
||||||
crate://crates.io/rustc-serialize/0.3.18 \
|
|
||||||
crate://crates.io/tar/0.4.5 \
|
|
||||||
crate://crates.io/tempdir/0.3.4 \
|
|
||||||
crate://crates.io/term/0.4.4 \
|
|
||||||
crate://crates.io/toml/0.1.28 \
|
|
||||||
crate://crates.io/url/1.1.0 \
|
|
||||||
crate://crates.io/winapi/0.2.6 \
|
|
||||||
crate://crates.io/semver/0.2.3 \
|
|
||||||
crate://crates.io/regex-syntax/0.3.0 \
|
|
||||||
crate://crates.io/utf8-ranges/0.1.3 \
|
|
||||||
crate://crates.io/gcc/0.3.26 \
|
|
||||||
crate://crates.io/unicode-normalization/0.1.2 \
|
|
||||||
crate://crates.io/libz-sys/1.0.2 \
|
|
||||||
crate://crates.io/rand/0.3.14 \
|
|
||||||
crate://crates.io/user32-sys/0.1.2 \
|
|
||||||
crate://crates.io/idna/0.1.0 \
|
|
||||||
crate://crates.io/strsim/0.3.0 \
|
|
||||||
crate://crates.io/matches/0.1.2 \
|
|
||||||
crate://crates.io/cmake/0.1.16 \
|
|
||||||
crate://crates.io/gdi32-sys/0.1.1 \
|
|
||||||
crate://crates.io/bitflags/0.1.1 \
|
|
||||||
crate://crates.io/unicode-bidi/0.2.3 \
|
|
||||||
crate://crates.io/pkg-config/0.3.8 \
|
|
||||||
crate://crates.io/winapi-build/0.1.1 \
|
|
||||||
crate://crates.io/memchr/0.1.10 \
|
|
||||||
crate://crates.io/pnacl-build-helper/1.4.10 \
|
|
||||||
crate://crates.io/nom/1.2.2 \
|
|
||||||
crate://crates.io/num/0.1.31 \
|
|
||||||
crate://crates.io/uuid/0.2.3 \
|
|
||||||
crate://crates.io/aho-corasick/0.5.1 \
|
|
||||||
crate://crates.io/libressl-pnacl-sys/2.1.6 \
|
|
||||||
crate://crates.io/miniz-sys/0.1.7 \
|
|
||||||
crate://crates.io/openssl-sys/0.7.8 \
|
|
||||||
crate://crates.io/url/0.5.10 \
|
|
||||||
"
|
|
||||||
# Compatible with Rust 1.10.0
|
|
||||||
# https://static.rust-lang.org/dist/channel-rust-1.10.0.toml
|
|
||||||
SRCREV_cargo = "259324cd8f9bb6e1068a3a2b77685e90fda3e3b6"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
LIC_FILES_CHKSUM ="\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
file://LICENSE-THIRD-PARTY;md5=892ea68b169e69cfe75097fc38a15b56 \
|
|
||||||
"
|
|
||||||
|
|
||||||
## curl-rust
|
|
||||||
SRC_URI += "\
|
|
||||||
git://github.com/carllerche/curl-rust.git;protocol=https;destsuffix=curl-rust;name=curl-rust \
|
|
||||||
file://curl-rust/0001-curl-sys-avoid-explicitly-linking-in-openssl.patch;patchdir=../curl-rust \
|
|
||||||
file://curl-rust/0002-remove-per-triple-deps-on-openssl-sys.patch;patchdir=../curl-rust \
|
|
||||||
"
|
|
||||||
|
|
||||||
# 0.2.19 / -sys 0.1.34
|
|
||||||
SRCREV_curl-rust = "45b8cb56fbed45f828f96bdd8c286b2b3a8a26cb"
|
|
||||||
|
|
||||||
SRCREV_FORMAT .= "_curl-rust"
|
|
||||||
EXTRA_OECARGO_PATHS += "${WORKDIR}/curl-rust"
|
|
||||||
|
|
||||||
## ssh2-rs
|
|
||||||
SRC_URI += "\
|
|
||||||
git://github.com/alexcrichton/ssh2-rs.git;protocol=https;name=ssh2-rs;destsuffix=ssh2-rs \
|
|
||||||
file://ssh2-rs/0001-libssh2-sys-avoid-explicitly-linking-in-openssl.patch;patchdir=../ssh2-rs \
|
|
||||||
"
|
|
||||||
|
|
||||||
# 0.2.11 / -sys 0.1.37
|
|
||||||
SRCREV_ssh2-rs = "ced77751cb780d0725a3411bd588c5a26ea79953"
|
|
||||||
|
|
||||||
SRCREV_FORMAT .= "_ssh2-rs"
|
|
||||||
EXTRA_OECARGO_PATHS += "${WORKDIR}/ssh2-rs"
|
|
||||||
|
|
||||||
## git2-rs
|
|
||||||
SRC_URI += "\
|
|
||||||
git://github.com/alexcrichton/git2-rs.git;protocol=https;name=git2-rs;destsuffix=git2-rs \
|
|
||||||
file://git2-rs/0001-libgit2-sys-avoid-blessed-triples.patch;patchdir=../git2-rs \
|
|
||||||
"
|
|
||||||
|
|
||||||
# 0.4.3 / -sys 0.4.2
|
|
||||||
SRCREV_git2-rs = "cd14fc7801e70d3b26a4e7e5d94785af1f7e9e58"
|
|
||||||
|
|
||||||
SRCREV_FORMAT .= "_git2-rs"
|
|
||||||
EXTRA_OECARGO_PATHS += "${WORKDIR}/git2-rs"
|
|
||||||
@@ -1,86 +0,0 @@
|
|||||||
require cargo-snapshot.inc
|
|
||||||
require cargo.inc
|
|
||||||
|
|
||||||
SRC_URI += " \
|
|
||||||
git://github.com/rust-lang/cargo.git;protocol=https;name=cargo \
|
|
||||||
crate://crates.io/advapi32-sys/0.2.0 \
|
|
||||||
crate://crates.io/aho-corasick/0.5.2 \
|
|
||||||
crate://crates.io/bitflags/0.1.1 \
|
|
||||||
crate://crates.io/bitflags/0.7.0 \
|
|
||||||
crate://crates.io/bufstream/0.1.2 \
|
|
||||||
crate://crates.io/cfg-if/0.1.0 \
|
|
||||||
crate://crates.io/cmake/0.1.17 \
|
|
||||||
crate://crates.io/crossbeam/0.2.9 \
|
|
||||||
crate://crates.io/curl-sys/0.2.1 \
|
|
||||||
crate://crates.io/curl/0.3.2 \
|
|
||||||
crate://crates.io/docopt/0.6.82 \
|
|
||||||
crate://crates.io/env_logger/0.3.4 \
|
|
||||||
crate://crates.io/filetime/0.1.10 \
|
|
||||||
crate://crates.io/flate2/0.2.14 \
|
|
||||||
crate://crates.io/fs2/0.2.5 \
|
|
||||||
crate://crates.io/gcc/0.3.32 \
|
|
||||||
crate://crates.io/gdi32-sys/0.2.0 \
|
|
||||||
crate://crates.io/git2-curl/0.5.0 \
|
|
||||||
crate://crates.io/git2/0.4.4 \
|
|
||||||
crate://crates.io/glob/0.2.11 \
|
|
||||||
crate://crates.io/hamcrest/0.1.0 \
|
|
||||||
crate://crates.io/idna/0.1.0 \
|
|
||||||
crate://crates.io/kernel32-sys/0.2.2 \
|
|
||||||
crate://crates.io/lazy_static/0.2.1 \
|
|
||||||
crate://crates.io/libc/0.2.15 \
|
|
||||||
crate://crates.io/libgit2-sys/0.4.5 \
|
|
||||||
crate://crates.io/libressl-pnacl-sys/2.1.6 \
|
|
||||||
crate://crates.io/libssh2-sys/0.1.38 \
|
|
||||||
crate://crates.io/libz-sys/1.0.5 \
|
|
||||||
crate://crates.io/log/0.3.6 \
|
|
||||||
crate://crates.io/matches/0.1.2 \
|
|
||||||
crate://crates.io/memchr/0.1.11 \
|
|
||||||
crate://crates.io/miniz-sys/0.1.7 \
|
|
||||||
crate://crates.io/miow/0.1.3 \
|
|
||||||
crate://crates.io/net2/0.2.26 \
|
|
||||||
crate://crates.io/nom/1.2.4 \
|
|
||||||
crate://crates.io/num-bigint/0.1.33 \
|
|
||||||
crate://crates.io/num-complex/0.1.33 \
|
|
||||||
crate://crates.io/num-integer/0.1.32 \
|
|
||||||
crate://crates.io/num-iter/0.1.32 \
|
|
||||||
crate://crates.io/num-rational/0.1.32 \
|
|
||||||
crate://crates.io/num-traits/0.1.34 \
|
|
||||||
crate://crates.io/num/0.1.34 \
|
|
||||||
crate://crates.io/num_cpus/1.0.0 \
|
|
||||||
crate://crates.io/openssl-sys-extras/0.7.14 \
|
|
||||||
crate://crates.io/openssl-sys/0.7.14 \
|
|
||||||
crate://crates.io/openssl/0.7.14 \
|
|
||||||
crate://crates.io/pkg-config/0.3.8 \
|
|
||||||
crate://crates.io/pnacl-build-helper/1.4.10 \
|
|
||||||
crate://crates.io/rand/0.3.14 \
|
|
||||||
crate://crates.io/regex-syntax/0.3.4 \
|
|
||||||
crate://crates.io/regex/0.1.73 \
|
|
||||||
crate://crates.io/rustc-serialize/0.3.19 \
|
|
||||||
crate://crates.io/semver/0.2.3 \
|
|
||||||
crate://crates.io/strsim/0.3.0 \
|
|
||||||
crate://crates.io/tar/0.4.8 \
|
|
||||||
crate://crates.io/tempdir/0.3.5 \
|
|
||||||
crate://crates.io/term/0.4.4 \
|
|
||||||
crate://crates.io/thread-id/2.0.0 \
|
|
||||||
crate://crates.io/thread_local/0.2.6 \
|
|
||||||
crate://crates.io/toml/0.2.0 \
|
|
||||||
crate://crates.io/unicode-bidi/0.2.3 \
|
|
||||||
crate://crates.io/unicode-normalization/0.1.2 \
|
|
||||||
crate://crates.io/url/1.2.0 \
|
|
||||||
crate://crates.io/user32-sys/0.2.0 \
|
|
||||||
crate://crates.io/utf8-ranges/0.1.3 \
|
|
||||||
crate://crates.io/winapi-build/0.1.1 \
|
|
||||||
crate://crates.io/winapi/0.2.8 \
|
|
||||||
crate://crates.io/ws2_32-sys/0.2.1 \
|
|
||||||
"
|
|
||||||
# Compatible with Rust 1.12.1
|
|
||||||
# https://static.rust-lang.org/dist/channel-rust-1.12.1.toml
|
|
||||||
SRCREV_cargo = "109cb7c33d426044d141457049bd0fffaca1327c"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
|
||||||
|
|
||||||
LIC_FILES_CHKSUM ="\
|
|
||||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
|
||||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
file://LICENSE-THIRD-PARTY;md5=892ea68b169e69cfe75097fc38a15b56 \
|
|
||||||
"
|
|
||||||
@@ -0,0 +1,154 @@
|
|||||||
|
# Auto-Generated by cargo-bitbake 0.3.10
|
||||||
|
#
|
||||||
|
inherit cargo
|
||||||
|
|
||||||
|
# If this is git based prefer versioned ones if they exist
|
||||||
|
# DEFAULT_PREFERENCE = "-1"
|
||||||
|
|
||||||
|
# how to get cargo could be as easy as but default to a git checkout:
|
||||||
|
# SRC_URI += "crate://crates.io/cargo/0.27.0"
|
||||||
|
SRC_URI += "git://github.com/rust-lang/cargo.git;protocol=https;branch=rust-1.26.0"
|
||||||
|
SRCREV = "0e7c5a93159076952f609e05760e2458828d0d1f"
|
||||||
|
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.4 \
|
||||||
|
crate://crates.io/ansi_term/0.11.0 \
|
||||||
|
crate://crates.io/atty/0.2.10 \
|
||||||
|
crate://crates.io/backtrace-sys/0.1.16 \
|
||||||
|
crate://crates.io/backtrace/0.3.7 \
|
||||||
|
crate://crates.io/bitflags/1.0.3 \
|
||||||
|
crate://crates.io/bufstream/0.1.3 \
|
||||||
|
crate://crates.io/cc/1.0.15 \
|
||||||
|
crate://crates.io/cfg-if/0.1.3 \
|
||||||
|
crate://crates.io/clap/2.31.2 \
|
||||||
|
crate://crates.io/cmake/0.1.31 \
|
||||||
|
crate://crates.io/commoncrypto-sys/0.2.0 \
|
||||||
|
crate://crates.io/commoncrypto/0.2.0 \
|
||||||
|
crate://crates.io/core-foundation-sys/0.5.1 \
|
||||||
|
crate://crates.io/core-foundation/0.5.1 \
|
||||||
|
crate://crates.io/crossbeam/0.3.2 \
|
||||||
|
crate://crates.io/crypto-hash/0.3.1 \
|
||||||
|
crate://crates.io/curl-sys/0.4.5 \
|
||||||
|
crate://crates.io/curl/0.4.12 \
|
||||||
|
crate://crates.io/dtoa/0.4.2 \
|
||||||
|
crate://crates.io/env_logger/0.5.10 \
|
||||||
|
crate://crates.io/failure/0.1.1 \
|
||||||
|
crate://crates.io/failure_derive/0.1.1 \
|
||||||
|
crate://crates.io/filetime/0.1.15 \
|
||||||
|
crate://crates.io/filetime/0.2.1 \
|
||||||
|
crate://crates.io/flate2/1.0.1 \
|
||||||
|
crate://crates.io/fnv/1.0.6 \
|
||||||
|
crate://crates.io/foreign-types-shared/0.1.1 \
|
||||||
|
crate://crates.io/foreign-types/0.3.2 \
|
||||||
|
crate://crates.io/fs2/0.4.3 \
|
||||||
|
crate://crates.io/fuchsia-zircon-sys/0.3.3 \
|
||||||
|
crate://crates.io/fuchsia-zircon/0.3.3 \
|
||||||
|
crate://crates.io/git2-curl/0.8.1 \
|
||||||
|
crate://crates.io/git2/0.7.1 \
|
||||||
|
crate://crates.io/glob/0.2.11 \
|
||||||
|
crate://crates.io/globset/0.4.0 \
|
||||||
|
crate://crates.io/hex/0.3.2 \
|
||||||
|
crate://crates.io/home/0.3.3 \
|
||||||
|
crate://crates.io/humantime/1.1.1 \
|
||||||
|
crate://crates.io/idna/0.1.4 \
|
||||||
|
crate://crates.io/ignore/0.4.2 \
|
||||||
|
crate://crates.io/itoa/0.4.1 \
|
||||||
|
crate://crates.io/jobserver/0.1.11 \
|
||||||
|
crate://crates.io/kernel32-sys/0.2.2 \
|
||||||
|
crate://crates.io/lazy_static/1.0.0 \
|
||||||
|
crate://crates.io/lazycell/0.6.0 \
|
||||||
|
crate://crates.io/libc/0.2.40 \
|
||||||
|
crate://crates.io/libgit2-sys/0.7.1 \
|
||||||
|
crate://crates.io/libssh2-sys/0.2.7 \
|
||||||
|
crate://crates.io/libz-sys/1.0.18 \
|
||||||
|
crate://crates.io/log/0.4.1 \
|
||||||
|
crate://crates.io/matches/0.1.6 \
|
||||||
|
crate://crates.io/memchr/2.0.1 \
|
||||||
|
crate://crates.io/miniz-sys/0.1.10 \
|
||||||
|
crate://crates.io/miow/0.3.1 \
|
||||||
|
crate://crates.io/num-traits/0.2.4 \
|
||||||
|
crate://crates.io/num_cpus/1.8.0 \
|
||||||
|
crate://crates.io/openssl-probe/0.1.2 \
|
||||||
|
crate://crates.io/openssl-sys/0.9.30 \
|
||||||
|
crate://crates.io/openssl/0.10.7 \
|
||||||
|
crate://crates.io/percent-encoding/1.0.1 \
|
||||||
|
crate://crates.io/pkg-config/0.3.11 \
|
||||||
|
crate://crates.io/proc-macro2/0.3.8 \
|
||||||
|
crate://crates.io/quick-error/1.2.1 \
|
||||||
|
crate://crates.io/quote/0.3.15 \
|
||||||
|
crate://crates.io/quote/0.5.2 \
|
||||||
|
crate://crates.io/rand/0.4.2 \
|
||||||
|
crate://crates.io/redox_syscall/0.1.37 \
|
||||||
|
crate://crates.io/redox_termios/0.1.1 \
|
||||||
|
crate://crates.io/regex-syntax/0.5.6 \
|
||||||
|
crate://crates.io/regex-syntax/0.6.0 \
|
||||||
|
crate://crates.io/regex/0.2.11 \
|
||||||
|
crate://crates.io/regex/1.0.0 \
|
||||||
|
crate://crates.io/remove_dir_all/0.5.1 \
|
||||||
|
crate://crates.io/rustc-demangle/0.1.8 \
|
||||||
|
crate://crates.io/same-file/1.0.2 \
|
||||||
|
crate://crates.io/schannel/0.1.12 \
|
||||||
|
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.55 \
|
||||||
|
crate://crates.io/serde_derive/1.0.55 \
|
||||||
|
crate://crates.io/serde_ignored/0.0.4 \
|
||||||
|
crate://crates.io/serde_json/1.0.17 \
|
||||||
|
crate://crates.io/shell-escape/0.1.4 \
|
||||||
|
crate://crates.io/socket2/0.3.5 \
|
||||||
|
crate://crates.io/strsim/0.7.0 \
|
||||||
|
crate://crates.io/syn/0.11.11 \
|
||||||
|
crate://crates.io/syn/0.13.10 \
|
||||||
|
crate://crates.io/synom/0.11.3 \
|
||||||
|
crate://crates.io/synstructure/0.6.1 \
|
||||||
|
crate://crates.io/tar/0.4.15 \
|
||||||
|
crate://crates.io/tempfile/3.0.2 \
|
||||||
|
crate://crates.io/termcolor/0.3.6 \
|
||||||
|
crate://crates.io/termion/1.5.1 \
|
||||||
|
crate://crates.io/textwrap/0.9.0 \
|
||||||
|
crate://crates.io/thread_local/0.3.5 \
|
||||||
|
crate://crates.io/toml/0.4.6 \
|
||||||
|
crate://crates.io/ucd-util/0.1.1 \
|
||||||
|
crate://crates.io/unicode-bidi/0.3.4 \
|
||||||
|
crate://crates.io/unicode-normalization/0.1.7 \
|
||||||
|
crate://crates.io/unicode-width/0.1.4 \
|
||||||
|
crate://crates.io/unicode-xid/0.0.4 \
|
||||||
|
crate://crates.io/unicode-xid/0.1.0 \
|
||||||
|
crate://crates.io/unreachable/1.0.0 \
|
||||||
|
crate://crates.io/url/1.7.0 \
|
||||||
|
crate://crates.io/utf8-ranges/1.0.0 \
|
||||||
|
crate://crates.io/vcpkg/0.2.3 \
|
||||||
|
crate://crates.io/vec_map/0.8.1 \
|
||||||
|
crate://crates.io/void/1.0.2 \
|
||||||
|
crate://crates.io/walkdir/2.1.4 \
|
||||||
|
crate://crates.io/winapi-build/0.1.1 \
|
||||||
|
crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
|
||||||
|
crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
|
||||||
|
crate://crates.io/winapi/0.2.8 \
|
||||||
|
crate://crates.io/winapi/0.3.4 \
|
||||||
|
crate://crates.io/wincolor/0.1.6 \
|
||||||
|
"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# FIXME: update generateme with the real MD5 of the license file
|
||||||
|
LIC_FILES_CHKSUM=" \
|
||||||
|
file://LICENSE-MIT;md5=b377b220f43d747efdec40d69fcaa69d \
|
||||||
|
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||||
|
"
|
||||||
|
|
||||||
|
SUMMARY = "Cargo, a package manager for Rust."
|
||||||
|
HOMEPAGE = "https://crates.io"
|
||||||
|
LICENSE = "MIT | Apache-2.0"
|
||||||
|
|
||||||
|
# includes this file if it exists but does not fail
|
||||||
|
# this is useful for anything you may want to override from
|
||||||
|
# what cargo-bitbake generates.
|
||||||
|
include cargo-${PV}.inc
|
||||||
|
include cargo.inc
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
From 27df8ab04275dfd715d1756fc517bb0323f1b210 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Steven Walter <stevenrwalter@gmail.com>
|
|
||||||
Date: Fri, 2 Sep 2016 14:02:03 -0400
|
|
||||||
Subject: [PATCH] Never update the registry index
|
|
||||||
|
|
||||||
Bitbake will fetch the index for us so that we needn't do network IO
|
|
||||||
during a build
|
|
||||||
---
|
|
||||||
src/cargo/ops/cargo_run.rs | 2 +-
|
|
||||||
src/cargo/sources/registry.rs | 34 +---------------------------------
|
|
||||||
2 files changed, 2 insertions(+), 34 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/cargo/ops/cargo_run.rs b/src/cargo/ops/cargo_run.rs
|
|
||||||
index 6764118..379b98b 100644
|
|
||||||
--- a/src/cargo/ops/cargo_run.rs
|
|
||||||
+++ b/src/cargo/ops/cargo_run.rs
|
|
||||||
@@ -1,7 +1,7 @@
|
|
||||||
use std::path::Path;
|
|
||||||
|
|
||||||
use ops::{self, CompileFilter};
|
|
||||||
-use util::{self, CargoResult, process, ProcessError};
|
|
||||||
+use util::{self, CargoResult, ProcessError};
|
|
||||||
use core::Package;
|
|
||||||
|
|
||||||
pub fn run(manifest_path: &Path,
|
|
||||||
diff --git a/src/cargo/sources/registry.rs b/src/cargo/sources/registry.rs
|
|
||||||
index 614d654..a0c7fe6 100644
|
|
||||||
--- a/src/cargo/sources/registry.rs
|
|
||||||
+++ b/src/cargo/sources/registry.rs
|
|
||||||
@@ -166,7 +166,6 @@ use std::path::{PathBuf, Path};
|
|
||||||
|
|
||||||
use curl::http;
|
|
||||||
use flate2::read::GzDecoder;
|
|
||||||
-use git2;
|
|
||||||
use rustc_serialize::hex::ToHex;
|
|
||||||
use rustc_serialize::json;
|
|
||||||
use tar::Archive;
|
|
||||||
@@ -174,7 +173,7 @@ use url::Url;
|
|
||||||
|
|
||||||
use core::{Source, SourceId, PackageId, Package, Summary, Registry};
|
|
||||||
use core::dependency::{Dependency, DependencyInner, Kind};
|
|
||||||
-use sources::{PathSource, git};
|
|
||||||
+use sources::PathSource;
|
|
||||||
use util::{CargoResult, Config, internal, ChainError, ToUrl, human};
|
|
||||||
use util::{hex, Sha256, paths, Filesystem, FileLock};
|
|
||||||
use ops;
|
|
||||||
@@ -464,38 +463,7 @@ impl<'cfg> RegistrySource<'cfg> {
|
|
||||||
|
|
||||||
/// Actually perform network operations to update the registry
|
|
||||||
fn do_update(&mut self) -> CargoResult<()> {
|
|
||||||
- if self.updated {
|
|
||||||
- return Ok(())
|
|
||||||
- }
|
|
||||||
- try!(self.checkout_path.create_dir());
|
|
||||||
- let lock = try!(self.checkout_path.open_rw(Path::new(INDEX_LOCK),
|
|
||||||
- self.config,
|
|
||||||
- "the registry index"));
|
|
||||||
- let path = lock.path().parent().unwrap();
|
|
||||||
-
|
|
||||||
- try!(self.config.shell().status("Updating",
|
|
||||||
- format!("registry `{}`", self.source_id.url())));
|
|
||||||
- let repo = try!(git2::Repository::open(path).or_else(|_| {
|
|
||||||
- let _ = lock.remove_siblings();
|
|
||||||
- git2::Repository::init(path)
|
|
||||||
- }));
|
|
||||||
-
|
|
||||||
- // git fetch origin
|
|
||||||
- let url = self.source_id.url().to_string();
|
|
||||||
- let refspec = "refs/heads/*:refs/remotes/origin/*";
|
|
||||||
-
|
|
||||||
- try!(git::fetch(&repo, &url, refspec, &self.config).chain_error(|| {
|
|
||||||
- internal(format!("failed to fetch `{}`", url))
|
|
||||||
- }));
|
|
||||||
-
|
|
||||||
- // git reset --hard origin/master
|
|
||||||
- let reference = "refs/remotes/origin/master";
|
|
||||||
- let oid = try!(repo.refname_to_id(reference));
|
|
||||||
- trace!("[{}] updating to rev {}", self.source_id, oid);
|
|
||||||
- let object = try!(repo.find_object(oid, None));
|
|
||||||
- try!(repo.reset(&object, git2::ResetType::Hard, None));
|
|
||||||
self.updated = true;
|
|
||||||
- self.cache.clear();
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
From 7ae8ea6523c943cc819eadea011ce4f783e40764 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cody P Schafer <dev@codyps.com>
|
|
||||||
Date: Wed, 3 Feb 2016 15:59:48 -0500
|
|
||||||
Subject: [PATCH] disable cargo snapshot fetch
|
|
||||||
|
|
||||||
---
|
|
||||||
Makefile.in | 4 ----
|
|
||||||
1 file changed, 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/Makefile.in b/Makefile.in
|
|
||||||
index fadcb4b..a8da630 100644
|
|
||||||
--- a/Makefile.in
|
|
||||||
+++ b/Makefile.in
|
|
||||||
@@ -103,10 +103,6 @@ test-unit-$(1): $$(CARGO)
|
|
||||||
endef
|
|
||||||
$(foreach target,$(CFG_TARGET),$(eval $(call CARGO_TARGET,$(target))))
|
|
||||||
|
|
||||||
-$(TARGET_ROOT)/snapshot/bin/cargo$(X): $(S)src/snapshots.txt
|
|
||||||
- $(CFG_PYTHON) $(S)src/etc/dl-snapshot.py $(CFG_BUILD)
|
|
||||||
- touch $@
|
|
||||||
-
|
|
||||||
|
|
||||||
# === Tests
|
|
||||||
|
|
||||||
--
|
|
||||||
2.8.2
|
|
||||||
|
|
||||||
-75
@@ -1,75 +0,0 @@
|
|||||||
From 8f82cc69e50e7c8e48a2e20b7061483a28bd0d7f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cody P Schafer <dev@codyps.com>
|
|
||||||
Date: Sat, 12 Dec 2015 22:36:26 -0500
|
|
||||||
Subject: [PATCH 1/2] curl-sys: avoid explicitly linking in openssl
|
|
||||||
|
|
||||||
linking libcurl with libssl is handled by pkg-config, not us
|
|
||||||
This also allows non-blessed triples to work.
|
|
||||||
---
|
|
||||||
curl-sys/Cargo.toml | 38 --------------------------------------
|
|
||||||
curl-sys/lib.rs | 2 --
|
|
||||||
2 files changed, 40 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/curl-sys/Cargo.toml b/curl-sys/Cargo.toml
|
|
||||||
index 24bc4fa..dd56209 100644
|
|
||||||
--- a/curl-sys/Cargo.toml
|
|
||||||
+++ b/curl-sys/Cargo.toml
|
|
||||||
@@ -19,42 +19,4 @@ path = "lib.rs"
|
|
||||||
[dependencies]
|
|
||||||
libz-sys = ">= 0"
|
|
||||||
libc = "0.2"
|
|
||||||
-
|
|
||||||
-[target."cfg(all(unix, not(target_os = \"macos\")))".dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-
|
|
||||||
-# Unix platforms use OpenSSL for now to provide SSL functionality
|
|
||||||
-[target.i686-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.i586-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.i686-linux-android.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.x86_64-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.x86_64-unknown-linux-musl.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.arm-unknown-linux-gnueabihf.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.armv7-unknown-linux-gnueabihf.dependencies]
|
|
||||||
openssl-sys = "0.7.0"
|
|
||||||
-[target.arm-linux-androideabi.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.aarch64-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.powerpc-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.powerpc64-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.powerpc64le-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.i686-unknown-freebsd.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.x86_64-unknown-freebsd.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.x86_64-unknown-bitrig.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.x86_64-unknown-openbsd.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.x86_64-unknown-dragonfly.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
diff --git a/curl-sys/lib.rs b/curl-sys/lib.rs
|
|
||||||
index 7990bd6..eb6c27a 100644
|
|
||||||
--- a/curl-sys/lib.rs
|
|
||||||
+++ b/curl-sys/lib.rs
|
|
||||||
@@ -3,8 +3,6 @@
|
|
||||||
extern crate libc;
|
|
||||||
#[cfg(not(target_env = "msvc"))]
|
|
||||||
extern crate libz_sys;
|
|
||||||
-#[cfg(all(unix, not(target_os = "macos")))]
|
|
||||||
-extern crate openssl_sys;
|
|
||||||
|
|
||||||
use libc::{c_void, c_int, c_char, c_uint, c_long};
|
|
||||||
|
|
||||||
--
|
|
||||||
2.9.2
|
|
||||||
|
|
||||||
-67
@@ -1,67 +0,0 @@
|
|||||||
From eb23b1b6f749102e3db92b73a5e55ec6ad688524 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cody P Schafer <dev@codyps.com>
|
|
||||||
Date: Sat, 12 Dec 2015 22:40:33 -0500
|
|
||||||
Subject: [PATCH 2/2] remove per triple deps on openssl-sys
|
|
||||||
|
|
||||||
---
|
|
||||||
Cargo.toml | 40 +---------------------------------------
|
|
||||||
1 file changed, 1 insertion(+), 39 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/Cargo.toml b/Cargo.toml
|
|
||||||
index 5f6cf87..0c87156 100644
|
|
||||||
--- a/Cargo.toml
|
|
||||||
+++ b/Cargo.toml
|
|
||||||
@@ -12,49 +12,11 @@ url = ">= 0.5, < 2.0"
|
|
||||||
log = "0.3.0"
|
|
||||||
libc = "0.2"
|
|
||||||
curl-sys = { path = "curl-sys", version = "0.1.0" }
|
|
||||||
+openssl-sys = "0.7.0"
|
|
||||||
|
|
||||||
[dev-dependencies]
|
|
||||||
env_logger = "0.3.0"
|
|
||||||
|
|
||||||
-# Unix platforms use OpenSSL for now to provide SSL functionality
|
|
||||||
-[target."cfg(all(unix, not(target_os = \"macos\")))".dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-
|
|
||||||
-[target.i686-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.i586-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.i686-linux-android.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.x86_64-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.x86_64-unknown-linux-musl.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.arm-unknown-linux-gnueabihf.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.armv7-unknown-linux-gnueabihf.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.arm-linux-androideabi.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.aarch64-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.powerpc-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.powerpc64-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.powerpc64le-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.i686-unknown-freebsd.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.x86_64-unknown-freebsd.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.x86_64-unknown-bitrig.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.x86_64-unknown-openbsd.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.x86_64-unknown-dragonfly.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-
|
|
||||||
[[test]]
|
|
||||||
|
|
||||||
name = "test"
|
|
||||||
--
|
|
||||||
2.9.2
|
|
||||||
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
From 308fd350907fba13f68dcdb8e48040582466cae6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cody P Schafer <dev@codyps.com>
|
|
||||||
Date: Sat, 12 Dec 2015 22:53:37 -0500
|
|
||||||
Subject: [PATCH] libgit2-sys: avoid blessed triples
|
|
||||||
|
|
||||||
---
|
|
||||||
libgit2-sys/Cargo.toml | 33 +--------------------------------
|
|
||||||
1 file changed, 1 insertion(+), 32 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/libgit2-sys/Cargo.toml b/libgit2-sys/Cargo.toml
|
|
||||||
index 2395314..29000ef 100644
|
|
||||||
--- a/libgit2-sys/Cargo.toml
|
|
||||||
+++ b/libgit2-sys/Cargo.toml
|
|
||||||
@@ -17,44 +17,13 @@ path = "lib.rs"
|
|
||||||
libssh2-sys = { version = ">= 0", optional = true }
|
|
||||||
libc = "0.2"
|
|
||||||
libz-sys = ">= 0"
|
|
||||||
+openssl-sys = "0.7.0"
|
|
||||||
|
|
||||||
[build-dependencies]
|
|
||||||
pkg-config = "0.3"
|
|
||||||
cmake = "0.1.2"
|
|
||||||
gcc = "0.3"
|
|
||||||
|
|
||||||
-[target."cfg(all(unix, not(target_os = \"macos\")))".dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-
|
|
||||||
-[target.i686-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.i586-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.x86_64-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.x86_64-unknown-linux-musl.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.aarch64-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.powerpc64-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.powerpc64le-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.arm-unknown-linux-gnueabihf.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.armv7-unknown-linux-gnueabihf.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.i686-unknown-freebsd.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.x86_64-unknown-freebsd.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.x86_64-unknown-bitrig.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.x86_64-unknown-openbsd.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-[target.x86_64-unknown-dragonfly.dependencies]
|
|
||||||
-openssl-sys = "0.7.0"
|
|
||||||
-
|
|
||||||
[features]
|
|
||||||
ssh = ["libssh2-sys"]
|
|
||||||
https = []
|
|
||||||
--
|
|
||||||
2.9.2
|
|
||||||
|
|
||||||
-70
@@ -1,70 +0,0 @@
|
|||||||
From 65f07216c2c7a341cf13c35ecc1a781d7a489511 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cody P Schafer <dev@codyps.com>
|
|
||||||
Date: Sat, 12 Dec 2015 22:44:14 -0500
|
|
||||||
Subject: [PATCH] libssh2-sys: avoid explicitly linking in openssl
|
|
||||||
|
|
||||||
---
|
|
||||||
libssh2-sys/Cargo.toml | 33 ---------------------------------
|
|
||||||
libssh2-sys/lib.rs | 2 --
|
|
||||||
2 files changed, 35 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/libssh2-sys/Cargo.toml b/libssh2-sys/Cargo.toml
|
|
||||||
index c4e006d..175be77 100644
|
|
||||||
--- a/libssh2-sys/Cargo.toml
|
|
||||||
+++ b/libssh2-sys/Cargo.toml
|
|
||||||
@@ -19,39 +19,6 @@ libc = "0.2"
|
|
||||||
[target."cfg(unix)".dependencies]
|
|
||||||
openssl-sys = ">= 0"
|
|
||||||
|
|
||||||
-[target.i686-apple-darwin.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.x86_64-apple-darwin.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.i686-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.i586-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.x86_64-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.aarch64-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.powerpc64-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.powerpc64le-unknown-linux-gnu.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.x86_64-unknown-linux-musl.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.arm-unknown-linux-gnueabihf.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.armv7-unknown-linux-gnueabihf.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.i686-unknown-freebsd.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.x86_64-unknown-freebsd.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.x86_64-unknown-dragonfly.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.x86_64-unknown-bitrig.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-[target.x86_64-unknown-openbsd.dependencies]
|
|
||||||
-openssl-sys = ">= 0"
|
|
||||||
-
|
|
||||||
[build-dependencies]
|
|
||||||
pkg-config = "0.3"
|
|
||||||
cmake = "0.1.2"
|
|
||||||
diff --git a/libssh2-sys/lib.rs b/libssh2-sys/lib.rs
|
|
||||||
index 02fd203..3ca1806 100644
|
|
||||||
--- a/libssh2-sys/lib.rs
|
|
||||||
+++ b/libssh2-sys/lib.rs
|
|
||||||
@@ -4,8 +4,6 @@
|
|
||||||
extern crate libc;
|
|
||||||
|
|
||||||
extern crate libz_sys;
|
|
||||||
-#[cfg(unix)]
|
|
||||||
-extern crate openssl_sys;
|
|
||||||
|
|
||||||
use libc::{c_int, size_t, c_void, c_char, c_long, c_uchar, c_uint, c_ulong};
|
|
||||||
use libc::ssize_t;
|
|
||||||
--
|
|
||||||
2.8.2
|
|
||||||
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
From 3d850e1b1651a79085b994c12cdb78faa8271622 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Ho=C3=A0ng=20=C4=90=E1=BB=A9c=20Hi=E1=BA=BFu?=
|
|
||||||
<hdhoang@zahe.me>
|
|
||||||
Date: Mon, 1 Dec 2014 11:48:14 +0700
|
|
||||||
Subject: [PATCH] update to new io::FileType enum
|
|
||||||
|
|
||||||
---
|
|
||||||
src/lib.rs | 32 ++++++++++++++++----------------
|
|
||||||
1 file changed, 16 insertions(+), 16 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/lib.rs b/src/lib.rs
|
|
||||||
index 5e13b84..3e24ff2 100644
|
|
||||||
--- a/src/lib.rs
|
|
||||||
+++ b/src/lib.rs
|
|
||||||
@@ -283,12 +283,12 @@ impl<W: Writer> Archive<W> {
|
|
||||||
octal(&mut header.dev_major, 0i);
|
|
||||||
|
|
||||||
header.link[0] = match stat.kind {
|
|
||||||
- io::TypeFile => b'0',
|
|
||||||
- io::TypeDirectory => b'5',
|
|
||||||
- io::TypeNamedPipe => b'6',
|
|
||||||
- io::TypeBlockSpecial => b'4',
|
|
||||||
- io::TypeSymlink => b'2',
|
|
||||||
- io::TypeUnknown => b' ',
|
|
||||||
+ io::FileType::RegularFile => b'0',
|
|
||||||
+ io::FileType::Directory => b'5',
|
|
||||||
+ io::FileType::NamedPipe => b'6',
|
|
||||||
+ io::FileType::BlockSpecial => b'4',
|
|
||||||
+ io::FileType::Symlink => b'2',
|
|
||||||
+ io::FileType::Unknown => b' ',
|
|
||||||
};
|
|
||||||
|
|
||||||
// Final step, calculate the checksum
|
|
||||||
@@ -411,16 +411,16 @@ impl<'a, R> File<'a, R> {
|
|
||||||
/// Classify the type of file that this entry represents
|
|
||||||
pub fn classify(&self) -> io::FileType {
|
|
||||||
match (self.header.is_ustar(), self.header.link[0]) {
|
|
||||||
- (_, b'0') => io::TypeFile,
|
|
||||||
- (_, b'1') => io::TypeUnknown, // need a hard link enum?
|
|
||||||
- (_, b'2') => io::TypeSymlink,
|
|
||||||
- (false, _) => io::TypeUnknown, // not technically valid...
|
|
||||||
-
|
|
||||||
- (_, b'3') => io::TypeUnknown, // character special...
|
|
||||||
- (_, b'4') => io::TypeBlockSpecial,
|
|
||||||
- (_, b'5') => io::TypeDirectory,
|
|
||||||
- (_, b'6') => io::TypeNamedPipe,
|
|
||||||
- (_, _) => io::TypeUnknown, // not technically valid...
|
|
||||||
+ (_, b'0') => io::FileType::RegularFile,
|
|
||||||
+ (_, b'1') => io::FileType::Unknown, // need a hard link enum?
|
|
||||||
+ (_, b'2') => io::FileType::Symlink,
|
|
||||||
+ (false, _) => io::FileType::Unknown, // not technically valid...
|
|
||||||
+
|
|
||||||
+ (_, b'3') => io::FileType::Unknown, // character special...
|
|
||||||
+ (_, b'4') => io::FileType::BlockSpecial,
|
|
||||||
+ (_, b'5') => io::FileType::Directory,
|
|
||||||
+ (_, b'6') => io::FileType::NamedPipe,
|
|
||||||
+ (_, _) => io::FileType::Unknown, // not technically valid...
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.0.4
|
|
||||||
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
SUMMARY = "Rust compiler run-time"
|
|
||||||
HOMEPAGE = "http://www.rust-lang.org"
|
|
||||||
SECTION = "devel"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=27b14ab4ce08d04c3a9a5f0ed7997362"
|
|
||||||
|
|
||||||
SRC_URI = "\
|
|
||||||
https://static.rust-lang.org/dist/rustc-${PV}-src.tar.gz;name=rust \
|
|
||||||
"
|
|
||||||
|
|
||||||
require rust-source-${PV}.inc
|
|
||||||
|
|
||||||
ALLOW_EMPTY_${PN} = "1"
|
|
||||||
|
|
||||||
# dev and staticdev should NOT depend on the binary package
|
|
||||||
RDEPENDS_${PN}-dev = ""
|
|
||||||
INSANE_SKIP_${PN}-dev = "staticdev"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/rustc-${PV}/src/compiler-rt"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_runmake -C ${S} \
|
|
||||||
ProjSrcRoot="${S}" \
|
|
||||||
ProjObjRoot="${B}" \
|
|
||||||
CC="${CC}" \
|
|
||||||
AR="${AR}" \
|
|
||||||
RANLIB="${RANLIB}" \
|
|
||||||
CFLAGS="${CFLAGS}" \
|
|
||||||
TargetTriple=${HOST_SYS} \
|
|
||||||
triple-builtins
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
mkdir -p ${D}${libdir}
|
|
||||||
cp triple/builtins/libcompiler_rt.a ${D}${libdir}/libcompiler-rt.a
|
|
||||||
}
|
|
||||||
|
|
||||||
FILES_${PN}-dev = ""
|
|
||||||
FILES_${PN}-staticdev = "${libdir}/*.a"
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
SUMMARY = "Rust compiler run-time"
|
|
||||||
HOMEPAGE = "http://www.rust-lang.org"
|
|
||||||
SECTION = "devel"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "file://src/compiler-rt/LICENSE.TXT;md5=bf24bca27049b52e9738451aa55771d4"
|
|
||||||
|
|
||||||
require rust.inc
|
|
||||||
require rust-source-${PV}.inc
|
|
||||||
ALLOW_EMPTY_${PN} = "1"
|
|
||||||
|
|
||||||
DEPENDS += "rust-llvm-native (=${PV})"
|
|
||||||
# dev and staticdev should NOT depend on the binary package
|
|
||||||
RDEPENDS_${PN}-dev = ""
|
|
||||||
INSANE_SKIP_${PN}-dev = "staticdev"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/rustc-${PV}"
|
|
||||||
|
|
||||||
DISABLE_STATIC = ""
|
|
||||||
INHIBIT_DEFAULT_RUST_DEPS = "1"
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
oe_runmake ${TARGET_SYS}/rt/libcompiler-rt.a
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
mkdir -p ${D}${libdir}
|
|
||||||
cp ${TARGET_SYS}/rt/libcompiler-rt.a ${D}${libdir}/libcompiler-rt.a
|
|
||||||
}
|
|
||||||
|
|
||||||
FILES_${PN}-dev = ""
|
|
||||||
FILES_${PN}-staticdev = "${libdir}/*.a"
|
|
||||||
-45
@@ -1,45 +0,0 @@
|
|||||||
From 69b65762ccdf459143fc273a39b0a0e0c6d8fe3e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Steven Walter <swalter@lexmark.com>
|
|
||||||
Date: Mon, 2 May 2016 19:57:46 -0400
|
|
||||||
Subject: [PATCH 01/11] Add config for musl-based arm builds
|
|
||||||
|
|
||||||
---
|
|
||||||
mk/cfg/arm-unknown-linux-musleabi.mk | 26 ++++++++++++++++++++++++++
|
|
||||||
1 file changed, 26 insertions(+)
|
|
||||||
create mode 100644 mk/cfg/arm-unknown-linux-musleabi.mk
|
|
||||||
|
|
||||||
diff --git a/mk/cfg/arm-unknown-linux-musleabi.mk b/mk/cfg/arm-unknown-linux-musleabi.mk
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..2485bd9
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/mk/cfg/arm-unknown-linux-musleabi.mk
|
|
||||||
@@ -0,0 +1,26 @@
|
|
||||||
+# arm-unknown-linux-musleabi configuration
|
|
||||||
+CROSS_PREFIX_arm-unknown-linux-musleabi=arm-linux-musleabi-
|
|
||||||
+CC_arm-unknown-linux-musleabi=gcc
|
|
||||||
+CXX_arm-unknown-linux-musleabi=g++
|
|
||||||
+CPP_arm-unknown-linux-musleabi=gcc -E
|
|
||||||
+AR_arm-unknown-linux-musleabi=ar
|
|
||||||
+CFG_LIB_NAME_arm-unknown-linux-musleabi=lib$(1).so
|
|
||||||
+CFG_STATIC_LIB_NAME_arm-unknown-linux-musleabi=lib$(1).a
|
|
||||||
+CFG_LIB_GLOB_arm-unknown-linux-musleabi=lib$(1)-*.so
|
|
||||||
+CFG_LIB_DSYM_GLOB_arm-unknown-linux-musleabi=lib$(1)-*.dylib.dSYM
|
|
||||||
+CFG_JEMALLOC_CFLAGS_arm-unknown-linux-musleabi := -D__arm__ $(CFLAGS)
|
|
||||||
+CFG_GCCISH_CFLAGS_arm-unknown-linux-musleabi := -Wall -g -fPIC -D__arm__ $(CFLAGS)
|
|
||||||
+CFG_GCCISH_CXXFLAGS_arm-unknown-linux-musleabi := -fno-rtti $(CXXFLAGS)
|
|
||||||
+CFG_GCCISH_LINK_FLAGS_arm-unknown-linux-musleabi := -shared -fPIC -g
|
|
||||||
+CFG_GCCISH_DEF_FLAG_arm-unknown-linux-musleabi := -Wl,--export-dynamic,--dynamic-list=
|
|
||||||
+CFG_LLC_FLAGS_arm-unknown-linux-musleabi :=
|
|
||||||
+CFG_INSTALL_NAME_arm-unknown-linux-musleabi =
|
|
||||||
+CFG_EXE_SUFFIX_arm-unknown-linux-musleabi :=
|
|
||||||
+CFG_WINDOWSY_arm-unknown-linux-musleabi :=
|
|
||||||
+CFG_UNIXY_arm-unknown-linux-musleabi := 1
|
|
||||||
+CFG_LDPATH_arm-unknown-linux-musleabi :=
|
|
||||||
+CFG_RUN_arm-unknown-linux-musleabi=$(2)
|
|
||||||
+CFG_RUN_TARG_arm-unknown-linux-musleabi=$(call CFG_RUN_arm-unknown-linux-musleabi,,$(2))
|
|
||||||
+RUSTC_FLAGS_arm-unknown-linux-musleabi :=
|
|
||||||
+RUSTC_CROSS_FLAGS_arm-unknown-linux-musleabi :=
|
|
||||||
+CFG_GNU_TRIPLE_arm-unknown-linux-musleabi := arm-unknown-linux-musleabi
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
||||||
-107
@@ -1,107 +0,0 @@
|
|||||||
From 0535c75086a9c170d8d4d99b3030d9136ea6e2c7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cody P Schafer <dev@codyps.com>
|
|
||||||
Date: Tue, 18 Nov 2014 01:40:21 -0500
|
|
||||||
Subject: [PATCH 02/11] Target: add default target.json path:
|
|
||||||
$libdir/rust/targets
|
|
||||||
|
|
||||||
---
|
|
||||||
src/librustc/session/config.rs | 6 +++---
|
|
||||||
src/librustc/session/mod.rs | 8 ++++++--
|
|
||||||
src/librustc_back/target/mod.rs | 13 +++++++++++--
|
|
||||||
3 files changed, 20 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs
|
|
||||||
index da5555d..6cd0ea9 100644
|
|
||||||
--- a/src/librustc/session/config.rs
|
|
||||||
+++ b/src/librustc/session/config.rs
|
|
||||||
@@ -35,7 +35,7 @@ use getopts;
|
|
||||||
use std::collections::HashMap;
|
|
||||||
use std::env;
|
|
||||||
use std::fmt;
|
|
||||||
-use std::path::PathBuf;
|
|
||||||
+use std::path::{Path, PathBuf};
|
|
||||||
|
|
||||||
pub struct Config {
|
|
||||||
pub target: Target,
|
|
||||||
@@ -787,8 +787,8 @@ pub fn build_configuration(sess: &Session) -> ast::CrateConfig {
|
|
||||||
v
|
|
||||||
}
|
|
||||||
|
|
||||||
-pub fn build_target_config(opts: &Options, sp: &Handler) -> Config {
|
|
||||||
- let target = match Target::search(&opts.target_triple) {
|
|
||||||
+pub fn build_target_config(sysroot: &Path, opts: &Options, sp: &Handler) -> Config {
|
|
||||||
+ let target = match Target::search(sysroot, &opts.target_triple[..]) {
|
|
||||||
Ok(t) => t,
|
|
||||||
Err(e) => {
|
|
||||||
panic!(sp.fatal(&format!("Error loading target specification: {}", e)));
|
|
||||||
diff --git a/src/librustc/session/mod.rs b/src/librustc/session/mod.rs
|
|
||||||
index 907241d..d0e3743 100644
|
|
||||||
--- a/src/librustc/session/mod.rs
|
|
||||||
+++ b/src/librustc/session/mod.rs
|
|
||||||
@@ -470,13 +470,17 @@ pub fn build_session_(sopts: config::Options,
|
|
||||||
codemap: Rc<codemap::CodeMap>,
|
|
||||||
cstore: Rc<for<'a> CrateStore<'a>>)
|
|
||||||
-> Session {
|
|
||||||
- let host = match Target::search(config::host_triple()) {
|
|
||||||
+ let sysroot = match sopts.maybe_sysroot {
|
|
||||||
+ Some(ref x) => PathBuf::from(x),
|
|
||||||
+ None => filesearch::get_or_default_sysroot()
|
|
||||||
+ };
|
|
||||||
+ let host = match Target::search(&sysroot, config::host_triple()) {
|
|
||||||
Ok(t) => t,
|
|
||||||
Err(e) => {
|
|
||||||
panic!(span_diagnostic.fatal(&format!("Error loading host specification: {}", e)));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
- let target_cfg = config::build_target_config(&sopts, &span_diagnostic);
|
|
||||||
+ let target_cfg = config::build_target_config(&sysroot, &sopts, &span_diagnostic);
|
|
||||||
let p_s = parse::ParseSess::with_span_handler(span_diagnostic, codemap);
|
|
||||||
let default_sysroot = match sopts.maybe_sysroot {
|
|
||||||
Some(_) => None,
|
|
||||||
diff --git a/src/librustc_back/target/mod.rs b/src/librustc_back/target/mod.rs
|
|
||||||
index 2163a8a..38607f0 100644
|
|
||||||
--- a/src/librustc_back/target/mod.rs
|
|
||||||
+++ b/src/librustc_back/target/mod.rs
|
|
||||||
@@ -48,6 +48,8 @@ use serialize::json::Json;
|
|
||||||
use std::default::Default;
|
|
||||||
use std::io::prelude::*;
|
|
||||||
use syntax::abi::Abi;
|
|
||||||
+use std::borrow::ToOwned;
|
|
||||||
+use std::path::Path;
|
|
||||||
|
|
||||||
mod android_base;
|
|
||||||
mod apple_base;
|
|
||||||
@@ -477,12 +479,13 @@ impl Target {
|
|
||||||
///
|
|
||||||
/// The error string could come from any of the APIs called, including
|
|
||||||
/// filesystem access and JSON decoding.
|
|
||||||
- pub fn search(target: &str) -> Result<Target, String> {
|
|
||||||
+ pub fn search(sysroot: &Path, target: &str) -> Result<Target, String> {
|
|
||||||
use std::env;
|
|
||||||
use std::ffi::OsString;
|
|
||||||
use std::fs::File;
|
|
||||||
use std::path::{Path, PathBuf};
|
|
||||||
use serialize::json;
|
|
||||||
+ use std::iter::IntoIterator;
|
|
||||||
|
|
||||||
fn load_file(path: &Path) -> Result<Target, String> {
|
|
||||||
let mut f = File::open(path).map_err(|e| e.to_string())?;
|
|
||||||
@@ -513,8 +516,14 @@ impl Target {
|
|
||||||
.unwrap_or(OsString::new());
|
|
||||||
|
|
||||||
// FIXME 16351: add a sane default search path?
|
|
||||||
+ let mut default_path = sysroot.to_owned();
|
|
||||||
+ default_path.push(env!("CFG_LIBDIR_RELATIVE"));
|
|
||||||
+ default_path.push("rustlib");
|
|
||||||
|
|
||||||
- for dir in env::split_paths(&target_path) {
|
|
||||||
+ let paths = env::split_paths(&target_path)
|
|
||||||
+ .chain(Some(default_path).into_iter());
|
|
||||||
+
|
|
||||||
+ for dir in paths {
|
|
||||||
let p = dir.join(&path);
|
|
||||||
if p.is_file() {
|
|
||||||
return load_file(&p);
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
||||||
-73
@@ -1,73 +0,0 @@
|
|||||||
From 4290b8f28222824a558ac4471d26fe88b2889a5b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cody P Schafer <dev@codyps.com>
|
|
||||||
Date: Tue, 18 Nov 2014 14:52:56 -0500
|
|
||||||
Subject: [PATCH 03/11] mk: for stage0, use RUSTFLAGS to override target libs
|
|
||||||
dir
|
|
||||||
|
|
||||||
Setting HLIB specially for stage0 (and even more specially for windows)
|
|
||||||
also affects the location we place TLIB. To keep the TLIBs we build in
|
|
||||||
the place requested by configure, use '-L' and '--sysroot' to point
|
|
||||||
stage0-rustc at the appropriate location.
|
|
||||||
---
|
|
||||||
mk/main.mk | 29 ++++++++++++-----------------
|
|
||||||
1 file changed, 12 insertions(+), 17 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/mk/main.mk b/mk/main.mk
|
|
||||||
index c47020c..fcf1409 100644
|
|
||||||
--- a/mk/main.mk
|
|
||||||
+++ b/mk/main.mk
|
|
||||||
@@ -403,32 +403,26 @@ define SREQ
|
|
||||||
HROOT$(1)_H_$(3) = $(3)/stage$(1)
|
|
||||||
HBIN$(1)_H_$(3) = $$(HROOT$(1)_H_$(3))/bin
|
|
||||||
|
|
||||||
-ifeq ($$(CFG_WINDOWSY_$(3)),1)
|
|
||||||
-# On Windows we always store host runtime libraries in the 'bin' directory because
|
|
||||||
-# there's no rpath. Target libraries go under $CFG_LIBDIR_RELATIVE (usually 'lib').
|
|
||||||
-HLIB_RELATIVE$(1)_H_$(3) = bin
|
|
||||||
-TROOT$(1)_T_$(2)_H_$(3) = $$(HROOT$(1)_H_$(3))/$$(CFG_LIBDIR_RELATIVE)/rustlib/$(2)
|
|
||||||
-# Remove the next 3 lines after a snapshot
|
|
||||||
-ifeq ($(1),0)
|
|
||||||
-RUSTFLAGS_STAGE0 += -L $$(TROOT$(1)_T_$(2)_H_$(3))/lib
|
|
||||||
-endif
|
|
||||||
-
|
|
||||||
-else
|
|
||||||
-
|
|
||||||
-ifeq ($(1),0)
|
|
||||||
-HLIB_RELATIVE$(1)_H_$(3) = lib
|
|
||||||
-else
|
|
||||||
HLIB_RELATIVE$(1)_H_$(3) = $$(CFG_LIBDIR_RELATIVE)
|
|
||||||
-endif
|
|
||||||
+
|
|
||||||
TROOT$(1)_T_$(2)_H_$(3) = $$(HLIB$(1)_H_$(3))/rustlib/$(2)
|
|
||||||
|
|
||||||
-endif
|
|
||||||
HLIB$(1)_H_$(3) = $$(HROOT$(1)_H_$(3))/$$(HLIB_RELATIVE$(1)_H_$(3))
|
|
||||||
|
|
||||||
# Destinations of artifacts for target architectures
|
|
||||||
TBIN$(1)_T_$(2)_H_$(3) = $$(TROOT$(1)_T_$(2)_H_$(3))/bin
|
|
||||||
TLIB$(1)_T_$(2)_H_$(3) = $$(TROOT$(1)_T_$(2)_H_$(3))/lib
|
|
||||||
|
|
||||||
+# Don't trust stage0, be explicit about libraries
|
|
||||||
+# TODO: rather than specifying sysroot, we really want to tell which libdir to
|
|
||||||
+# use (ie: the dir containing 'rustlib'). This would allow us to avoid
|
|
||||||
+# passing the '-L' options.
|
|
||||||
+ifeq ($(1),0)
|
|
||||||
+RUSTFLAGS_S_$(1)_T_$(2)_H_$(3) += --sysroot "$$(HROOT$(1)_H_$(3))" \
|
|
||||||
+ -L "$$(TLIB$(1)_T_$(2)_H_$(3))"
|
|
||||||
+endif
|
|
||||||
+
|
|
||||||
+
|
|
||||||
# Preqrequisites for using the stageN compiler
|
|
||||||
ifeq ($(1),0)
|
|
||||||
HSREQ$(1)_H_$(3) = $$(HBIN$(1)_H_$(3))/rustc$$(X_$(3))
|
|
||||||
@@ -536,6 +530,7 @@ STAGE$(1)_T_$(2)_H_$(3) := \
|
|
||||||
$$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \
|
|
||||||
--cfg $$(CFGFLAG$(1)_T_$(2)_H_$(3)) \
|
|
||||||
$$(CFG_RUSTC_FLAGS) $$(EXTRAFLAGS_STAGE$(1)) --target=$(2)) \
|
|
||||||
+ $$(RUSTFLAGS_S_$(1)_T_$(2)_H_$(3)) \
|
|
||||||
$$(RUSTC_FLAGS_$(2))
|
|
||||||
|
|
||||||
endef
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
From 06b8c4bc8f7056d604d8ef4d699273cc1dd39025 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cody P Schafer <dev@codyps.com>
|
|
||||||
Date: Tue, 18 Nov 2014 13:48:14 -0500
|
|
||||||
Subject: [PATCH 04/11] mk: add missing CFG_LIBDIR_RELATIVE
|
|
||||||
|
|
||||||
---
|
|
||||||
mk/grammar.mk | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/mk/grammar.mk b/mk/grammar.mk
|
|
||||||
index 0d527bd..926f247 100644
|
|
||||||
--- a/mk/grammar.mk
|
|
||||||
+++ b/mk/grammar.mk
|
|
||||||
@@ -11,8 +11,8 @@
|
|
||||||
BG = $(CFG_BUILD_DIR)/grammar/
|
|
||||||
SG = $(S)src/grammar/
|
|
||||||
B = $(CFG_BUILD_DIR)/$(CFG_BUILD)/stage2/
|
|
||||||
-L = $(B)lib/rustlib/$(CFG_BUILD)/lib
|
|
||||||
-LD = $(CFG_BUILD)/stage2/lib/rustlib/$(CFG_BUILD)/lib/
|
|
||||||
+L = $(B)$(CFG_LIBDIR_RELATIVE)/rustlib/$(CFG_BUILD)/lib
|
|
||||||
+LD = $(CFG_BUILD)/stage2/$(CFG_LIBDIR_RELATIVE)/rustlib/$(CFG_BUILD)/lib/
|
|
||||||
RUSTC = $(STAGE2_T_$(CFG_BUILD)_H_$(CFG_BUILD))
|
|
||||||
ifeq ($(CFG_OSTYPE),apple-darwin)
|
|
||||||
FLEX_LDFLAGS=-ll
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
||||||
-25
@@ -1,25 +0,0 @@
|
|||||||
From f7441b3080088d8131d106c59c3543b22c9e8211 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cody P Schafer <dev@codyps.com>
|
|
||||||
Date: Wed, 3 Dec 2014 19:15:19 -0500
|
|
||||||
Subject: [PATCH 06/11] std/thread_local: workaround for NULL __dso_handle
|
|
||||||
|
|
||||||
---
|
|
||||||
src/libstd/thread/local.rs | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/libstd/thread/local.rs b/src/libstd/thread/local.rs
|
|
||||||
index 6b54ec8..5b41b75 100644
|
|
||||||
--- a/src/libstd/thread/local.rs
|
|
||||||
+++ b/src/libstd/thread/local.rs
|
|
||||||
@@ -346,7 +346,7 @@ pub mod elf {
|
|
||||||
#[linkage = "extern_weak"]
|
|
||||||
static __cxa_thread_atexit_impl: *const libc::c_void;
|
|
||||||
}
|
|
||||||
- if !__cxa_thread_atexit_impl.is_null() {
|
|
||||||
+ if !__cxa_thread_atexit_impl.is_null() && !__dso_handle.is_null() {
|
|
||||||
type F = unsafe extern fn(dtor: unsafe extern fn(*mut u8),
|
|
||||||
arg: *mut u8,
|
|
||||||
dso_handle: *mut u8) -> libc::c_int;
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
||||||
-30
@@ -1,30 +0,0 @@
|
|||||||
From a73a748cd73920380ae1f069be91ff833e99d003 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cody P Schafer <dev@codyps.com>
|
|
||||||
Date: Mon, 2 Mar 2015 13:34:59 -0500
|
|
||||||
Subject: [PATCH 07/11] mk/install: use disable-rewrite-paths
|
|
||||||
|
|
||||||
This stops the install scripts from doing work we've already handled.
|
|
||||||
|
|
||||||
Path rewriting is only useful for prepackaged binary installers.
|
|
||||||
---
|
|
||||||
mk/install.mk | 4 +++-
|
|
||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/mk/install.mk b/mk/install.mk
|
|
||||||
index d2e5449..e67650b 100644
|
|
||||||
--- a/mk/install.mk
|
|
||||||
+++ b/mk/install.mk
|
|
||||||
@@ -12,7 +12,9 @@ RUN_INSTALLER = cd tmp/empty_dir && \
|
|
||||||
sh ../../tmp/dist/$(1)/install.sh \
|
|
||||||
--prefix="$(DESTDIR)$(CFG_PREFIX)" \
|
|
||||||
--libdir="$(DESTDIR)$(CFG_LIBDIR)" \
|
|
||||||
- --mandir="$(DESTDIR)$(CFG_MANDIR)"
|
|
||||||
+ --mandir="$(DESTDIR)$(CFG_MANDIR)" \
|
|
||||||
+ "$(MAYBE_DISABLE_VERIFY)" \
|
|
||||||
+ --disable-rewrite-paths
|
|
||||||
|
|
||||||
install:
|
|
||||||
ifeq (root user, $(USER) $(patsubst %,user,$(SUDO_USER)))
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
||||||
-60
@@ -1,60 +0,0 @@
|
|||||||
From 042a5df36597c2c6c23900667ae1b4299279092f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Steven Walter <swalter@lexmark.com>
|
|
||||||
Date: Wed, 18 Nov 2015 08:33:26 -0500
|
|
||||||
Subject: [PATCH 08/11] Allow overriding crate_hash with -C crate_hash
|
|
||||||
|
|
||||||
The current crate hash is not stable from run-to-run. This causes
|
|
||||||
problems with bitbake; it needs a guarantee that every build with the
|
|
||||||
same input will generate compatible output, otherwise sstate won't work.
|
|
||||||
Using -C crate_hash, we can do that by using the bitbake input hash to
|
|
||||||
determine the crate hash; the bitbake input hash will be stable, but
|
|
||||||
still different for different rust recipes.
|
|
||||||
---
|
|
||||||
src/librustc/session/config.rs | 2 ++
|
|
||||||
src/librustc_trans/back/link.rs | 12 +++++++++++-
|
|
||||||
2 files changed, 13 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs
|
|
||||||
index 6cd0ea9..f90398d 100644
|
|
||||||
--- a/src/librustc/session/config.rs
|
|
||||||
+++ b/src/librustc/session/config.rs
|
|
||||||
@@ -585,6 +585,8 @@ options! {CodegenOptions, CodegenSetter, basic_codegen_options,
|
|
||||||
"choose the code model to use (llc -code-model for details)"),
|
|
||||||
metadata: Vec<String> = (Vec::new(), parse_list,
|
|
||||||
"metadata to mangle symbol names with"),
|
|
||||||
+ crate_hash: String = ("".to_string(), parse_string,
|
|
||||||
+ "override crate hash with given value"),
|
|
||||||
extra_filename: String = ("".to_string(), parse_string,
|
|
||||||
"extra data to put in each output filename"),
|
|
||||||
codegen_units: usize = (1, parse_uint,
|
|
||||||
diff --git a/src/librustc_trans/back/link.rs b/src/librustc_trans/back/link.rs
|
|
||||||
index 222d447..e951476 100644
|
|
||||||
--- a/src/librustc_trans/back/link.rs
|
|
||||||
+++ b/src/librustc_trans/back/link.rs
|
|
||||||
@@ -125,12 +125,22 @@ pub fn find_crate_name(sess: Option<&Session>,
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
+use std::hash::{Hasher, SipHasher};
|
|
||||||
+use rustc::hir::svh::Svh;
|
|
||||||
+
|
|
||||||
pub fn build_link_meta<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
|
|
||||||
name: &str)
|
|
||||||
-> LinkMeta {
|
|
||||||
+ let crate_hash = if tcx.sess.opts.cg.crate_hash != "" {
|
|
||||||
+ let mut state = SipHasher::new();
|
|
||||||
+ state.write(tcx.sess.opts.cg.crate_hash.as_bytes());
|
|
||||||
+ Svh::new(state.finish())
|
|
||||||
+ } else {
|
|
||||||
+ tcx.calculate_krate_hash()
|
|
||||||
+ };
|
|
||||||
let r = LinkMeta {
|
|
||||||
crate_name: name.to_owned(),
|
|
||||||
- crate_hash: tcx.calculate_krate_hash(),
|
|
||||||
+ crate_hash: crate_hash,
|
|
||||||
};
|
|
||||||
info!("{:?}", r);
|
|
||||||
return r;
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
||||||
-25
@@ -1,25 +0,0 @@
|
|||||||
From 44ee7a68f44132ebe32ac486355945131c7a2b83 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Steven Walter <swalter@lexmark.com>
|
|
||||||
Date: Wed, 18 Nov 2015 08:41:17 -0500
|
|
||||||
Subject: [PATCH 09/11] mk/platform.mk: pass -C crate_hash to builds
|
|
||||||
|
|
||||||
bitbake recipe will export FORCE_CRATE_HASH
|
|
||||||
---
|
|
||||||
mk/platform.mk | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/mk/platform.mk b/mk/platform.mk
|
|
||||||
index c264462..b959d59 100644
|
|
||||||
--- a/mk/platform.mk
|
|
||||||
+++ b/mk/platform.mk
|
|
||||||
@@ -181,6 +181,7 @@ define CFG_MAKE_TOOLCHAIN
|
|
||||||
AR_$(1)=$(CROSS_PREFIX_$(1))$(AR_$(1))
|
|
||||||
LINK_$(1)=$(CROSS_PREFIX_$(1))$(LINK_$(1))
|
|
||||||
RUSTC_CROSS_FLAGS_$(1)=-C linker=$$(call FIND_COMPILER,$$(LINK_$(1))) \
|
|
||||||
+ -C crate_hash=$(FORCE_CRATE_HASH) \
|
|
||||||
-C ar=$$(call FIND_COMPILER,$$(AR_$(1))) $(RUSTC_CROSS_FLAGS_$(1))
|
|
||||||
|
|
||||||
RUSTC_FLAGS_$(1)=$$(RUSTC_CROSS_FLAGS_$(1)) $(RUSTC_FLAGS_$(1))
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
||||||
-96
@@ -1,96 +0,0 @@
|
|||||||
From 9c76c93de35fb45ed18e75827649e299d8c4e94e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Eduard Burtescu <edy.burt@gmail.com>
|
|
||||||
Date: Sun, 14 Aug 2016 11:16:28 +0300
|
|
||||||
Subject: [PATCH 11/11] Get rid of the .note interpretation of rustc dylib
|
|
||||||
metadata.
|
|
||||||
|
|
||||||
---
|
|
||||||
src/librustc_metadata/loader.rs | 41 ++++++++++++++++++-----------------------
|
|
||||||
src/librustc_trans/base.rs | 13 ++++++++++---
|
|
||||||
2 files changed, 28 insertions(+), 26 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/librustc_metadata/loader.rs b/src/librustc_metadata/loader.rs
|
|
||||||
index dc10391..9430b70 100644
|
|
||||||
--- a/src/librustc_metadata/loader.rs
|
|
||||||
+++ b/src/librustc_metadata/loader.rs
|
|
||||||
@@ -875,34 +875,29 @@ fn get_metadata_section_imp(target: &Target, flavor: CrateFlavor, filename: &Pat
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn meta_section_name(target: &Target) -> &'static str {
|
|
||||||
+ // Historical note:
|
|
||||||
+ //
|
|
||||||
+ // When using link.exe it was seen that the section name `.note.rustc`
|
|
||||||
+ // was getting shortened to `.note.ru`, and according to the PE and COFF
|
|
||||||
+ // specification:
|
|
||||||
+ //
|
|
||||||
+ // > Executable images do not use a string table and do not support
|
|
||||||
+ // > section names longer than 8 characters
|
|
||||||
+ //
|
|
||||||
+ // https://msdn.microsoft.com/en-us/library/windows/hardware/gg463119.aspx
|
|
||||||
+ //
|
|
||||||
+ // As a result, we choose a slightly shorter name! As to why
|
|
||||||
+ // `.note.rustc` works on MinGW, that's another good question...
|
|
||||||
+
|
|
||||||
if target.options.is_like_osx {
|
|
||||||
- "__DATA,__note.rustc"
|
|
||||||
- } else if target.options.is_like_msvc {
|
|
||||||
- // When using link.exe it was seen that the section name `.note.rustc`
|
|
||||||
- // was getting shortened to `.note.ru`, and according to the PE and COFF
|
|
||||||
- // specification:
|
|
||||||
- //
|
|
||||||
- // > Executable images do not use a string table and do not support
|
|
||||||
- // > section names longer than 8 characters
|
|
||||||
- //
|
|
||||||
- // https://msdn.microsoft.com/en-us/library/windows/hardware/gg463119.aspx
|
|
||||||
- //
|
|
||||||
- // As a result, we choose a slightly shorter name! As to why
|
|
||||||
- // `.note.rustc` works on MinGW, that's another good question...
|
|
||||||
- ".rustc"
|
|
||||||
+ "__DATA,.rustc"
|
|
||||||
} else {
|
|
||||||
- ".note.rustc"
|
|
||||||
+ ".rustc"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
-pub fn read_meta_section_name(target: &Target) -> &'static str {
|
|
||||||
- if target.options.is_like_osx {
|
|
||||||
- "__note.rustc"
|
|
||||||
- } else if target.options.is_like_msvc {
|
|
||||||
- ".rustc"
|
|
||||||
- } else {
|
|
||||||
- ".note.rustc"
|
|
||||||
- }
|
|
||||||
+pub fn read_meta_section_name(_target: &Target) -> &'static str {
|
|
||||||
+ ".rustc"
|
|
||||||
}
|
|
||||||
|
|
||||||
// A diagnostic function for dumping crate metadata to an output stream
|
|
||||||
diff --git a/src/librustc_trans/base.rs b/src/librustc_trans/base.rs
|
|
||||||
index d4f0786..93c9d1a 100644
|
|
||||||
--- a/src/librustc_trans/base.rs
|
|
||||||
+++ b/src/librustc_trans/base.rs
|
|
||||||
@@ -2523,10 +2523,17 @@ pub fn write_metadata<'a, 'tcx>(cx: &SharedCrateContext<'a, 'tcx>,
|
|
||||||
};
|
|
||||||
unsafe {
|
|
||||||
llvm::LLVMSetInitializer(llglobal, llconst);
|
|
||||||
- let name =
|
|
||||||
+ let section_name =
|
|
||||||
cx.tcx().sess.cstore.metadata_section_name(&cx.sess().target.target);
|
|
||||||
- let name = CString::new(name).unwrap();
|
|
||||||
- llvm::LLVMSetSection(llglobal, name.as_ptr())
|
|
||||||
+ let name = CString::new(section_name).unwrap();
|
|
||||||
+ llvm::LLVMSetSection(llglobal, name.as_ptr());
|
|
||||||
+
|
|
||||||
+ // Also generate a .section directive to force no
|
|
||||||
+ // flags, at least for ELF outputs, so that the
|
|
||||||
+ // metadata doesn't get loaded into memory.
|
|
||||||
+ let directive = format!(".section {}", section_name);
|
|
||||||
+ let directive = CString::new(directive).unwrap();
|
|
||||||
+ llvm::LLVMSetModuleInlineAsm(cx.metadata_llmod(), directive.as_ptr())
|
|
||||||
}
|
|
||||||
return metadata;
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
||||||
-107
@@ -1,107 +0,0 @@
|
|||||||
From bb2d8649b2b344e0bb4b1cf94135378831735557 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cody P Schafer <dev@codyps.com>
|
|
||||||
Date: Tue, 18 Nov 2014 01:40:21 -0500
|
|
||||||
Subject: [PATCH 01/10] Target: add default target.json path:
|
|
||||||
$libdir/rust/targets
|
|
||||||
|
|
||||||
---
|
|
||||||
src/librustc/session/config.rs | 6 +++---
|
|
||||||
src/librustc/session/mod.rs | 8 ++++++--
|
|
||||||
src/librustc_back/target/mod.rs | 13 +++++++++++--
|
|
||||||
3 files changed, 20 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs
|
|
||||||
index e988ddc..563f3ac 100644
|
|
||||||
--- a/src/librustc/session/config.rs
|
|
||||||
+++ b/src/librustc/session/config.rs
|
|
||||||
@@ -42,7 +42,7 @@ use std::env;
|
|
||||||
use std::fmt;
|
|
||||||
use std::hash::{Hasher, SipHasher};
|
|
||||||
use std::iter::FromIterator;
|
|
||||||
-use std::path::PathBuf;
|
|
||||||
+use std::path::{Path, PathBuf};
|
|
||||||
|
|
||||||
pub struct Config {
|
|
||||||
pub target: Target,
|
|
||||||
@@ -1011,8 +1011,8 @@ pub fn build_configuration(sess: &Session,
|
|
||||||
v
|
|
||||||
}
|
|
||||||
|
|
||||||
-pub fn build_target_config(opts: &Options, sp: &Handler) -> Config {
|
|
||||||
- let target = match Target::search(&opts.target_triple) {
|
|
||||||
+pub fn build_target_config(sysroot: &Path, opts: &Options, sp: &Handler) -> Config {
|
|
||||||
+ let target = match Target::search(sysroot, &opts.target_triple[..]) {
|
|
||||||
Ok(t) => t,
|
|
||||||
Err(e) => {
|
|
||||||
sp.struct_fatal(&format!("Error loading target specification: {}", e))
|
|
||||||
diff --git a/src/librustc/session/mod.rs b/src/librustc/session/mod.rs
|
|
||||||
index c71253a..13b4e05 100644
|
|
||||||
--- a/src/librustc/session/mod.rs
|
|
||||||
+++ b/src/librustc/session/mod.rs
|
|
||||||
@@ -395,13 +395,17 @@ pub fn build_session_(sopts: config::Options,
|
|
||||||
codemap: Rc<codemap::CodeMap>,
|
|
||||||
cstore: Rc<for<'a> CrateStore<'a>>)
|
|
||||||
-> Session {
|
|
||||||
- let host = match Target::search(config::host_triple()) {
|
|
||||||
+ let sysroot = match sopts.maybe_sysroot {
|
|
||||||
+ Some(ref x) => PathBuf::from(x),
|
|
||||||
+ None => filesearch::get_or_default_sysroot()
|
|
||||||
+ };
|
|
||||||
+ let host = match Target::search(&sysroot, config::host_triple()) {
|
|
||||||
Ok(t) => t,
|
|
||||||
Err(e) => {
|
|
||||||
panic!(span_diagnostic.fatal(&format!("Error loading host specification: {}", e)));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
- let target_cfg = config::build_target_config(&sopts, &span_diagnostic);
|
|
||||||
+ let target_cfg = config::build_target_config(&sysroot, &sopts, &span_diagnostic);
|
|
||||||
let p_s = parse::ParseSess::with_span_handler(span_diagnostic, codemap);
|
|
||||||
let default_sysroot = match sopts.maybe_sysroot {
|
|
||||||
Some(_) => None,
|
|
||||||
diff --git a/src/librustc_back/target/mod.rs b/src/librustc_back/target/mod.rs
|
|
||||||
index 18686e3..d439b59 100644
|
|
||||||
--- a/src/librustc_back/target/mod.rs
|
|
||||||
+++ b/src/librustc_back/target/mod.rs
|
|
||||||
@@ -49,6 +49,8 @@ use std::collections::BTreeMap;
|
|
||||||
use std::default::Default;
|
|
||||||
use std::io::prelude::*;
|
|
||||||
use syntax::abi::Abi;
|
|
||||||
+use std::borrow::ToOwned;
|
|
||||||
+use std::path::Path;
|
|
||||||
|
|
||||||
mod android_base;
|
|
||||||
mod apple_base;
|
|
||||||
@@ -541,12 +543,13 @@ impl Target {
|
|
||||||
///
|
|
||||||
/// The error string could come from any of the APIs called, including
|
|
||||||
/// filesystem access and JSON decoding.
|
|
||||||
- pub fn search(target: &str) -> Result<Target, String> {
|
|
||||||
+ pub fn search(sysroot: &Path, target: &str) -> Result<Target, String> {
|
|
||||||
use std::env;
|
|
||||||
use std::ffi::OsString;
|
|
||||||
use std::fs::File;
|
|
||||||
use std::path::{Path, PathBuf};
|
|
||||||
use serialize::json;
|
|
||||||
+ use std::iter::IntoIterator;
|
|
||||||
|
|
||||||
fn load_file(path: &Path) -> Result<Target, String> {
|
|
||||||
let mut f = File::open(path).map_err(|e| e.to_string())?;
|
|
||||||
@@ -577,8 +580,14 @@ impl Target {
|
|
||||||
.unwrap_or(OsString::new());
|
|
||||||
|
|
||||||
// FIXME 16351: add a sane default search path?
|
|
||||||
+ let mut default_path = sysroot.to_owned();
|
|
||||||
+ default_path.push(env!("CFG_LIBDIR_RELATIVE"));
|
|
||||||
+ default_path.push("rustlib");
|
|
||||||
|
|
||||||
- for dir in env::split_paths(&target_path) {
|
|
||||||
+ let paths = env::split_paths(&target_path)
|
|
||||||
+ .chain(Some(default_path).into_iter());
|
|
||||||
+
|
|
||||||
+ for dir in paths {
|
|
||||||
let p = dir.join(&path);
|
|
||||||
if p.is_file() {
|
|
||||||
return load_file(&p);
|
|
||||||
--
|
|
||||||
2.10.0
|
|
||||||
|
|
||||||
-73
@@ -1,73 +0,0 @@
|
|||||||
From 0829743c109a147213d06d38052662a5f2b0dd9b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cody P Schafer <dev@codyps.com>
|
|
||||||
Date: Tue, 18 Nov 2014 14:52:56 -0500
|
|
||||||
Subject: [PATCH 02/10] mk: for stage0, use RUSTFLAGS to override target libs
|
|
||||||
dir
|
|
||||||
|
|
||||||
Setting HLIB specially for stage0 (and even more specially for windows)
|
|
||||||
also affects the location we place TLIB. To keep the TLIBs we build in
|
|
||||||
the place requested by configure, use '-L' and '--sysroot' to point
|
|
||||||
stage0-rustc at the appropriate location.
|
|
||||||
---
|
|
||||||
mk/main.mk | 29 ++++++++++++-----------------
|
|
||||||
1 file changed, 12 insertions(+), 17 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/mk/main.mk b/mk/main.mk
|
|
||||||
index 90d3563..cdcbdf2 100644
|
|
||||||
--- a/mk/main.mk
|
|
||||||
+++ b/mk/main.mk
|
|
||||||
@@ -420,32 +420,26 @@ define SREQ
|
|
||||||
HROOT$(1)_H_$(3) = $(3)/stage$(1)
|
|
||||||
HBIN$(1)_H_$(3) = $$(HROOT$(1)_H_$(3))/bin
|
|
||||||
|
|
||||||
-ifeq ($$(CFG_WINDOWSY_$(3)),1)
|
|
||||||
-# On Windows we always store host runtime libraries in the 'bin' directory because
|
|
||||||
-# there's no rpath. Target libraries go under $CFG_LIBDIR_RELATIVE (usually 'lib').
|
|
||||||
-HLIB_RELATIVE$(1)_H_$(3) = bin
|
|
||||||
-TROOT$(1)_T_$(2)_H_$(3) = $$(HROOT$(1)_H_$(3))/$$(CFG_LIBDIR_RELATIVE)/rustlib/$(2)
|
|
||||||
-# Remove the next 3 lines after a snapshot
|
|
||||||
-ifeq ($(1),0)
|
|
||||||
-RUSTFLAGS_STAGE0 += -L $$(TROOT$(1)_T_$(2)_H_$(3))/lib
|
|
||||||
-endif
|
|
||||||
-
|
|
||||||
-else
|
|
||||||
-
|
|
||||||
-ifeq ($(1),0)
|
|
||||||
-HLIB_RELATIVE$(1)_H_$(3) = lib
|
|
||||||
-else
|
|
||||||
HLIB_RELATIVE$(1)_H_$(3) = $$(CFG_LIBDIR_RELATIVE)
|
|
||||||
-endif
|
|
||||||
+
|
|
||||||
TROOT$(1)_T_$(2)_H_$(3) = $$(HLIB$(1)_H_$(3))/rustlib/$(2)
|
|
||||||
|
|
||||||
-endif
|
|
||||||
HLIB$(1)_H_$(3) = $$(HROOT$(1)_H_$(3))/$$(HLIB_RELATIVE$(1)_H_$(3))
|
|
||||||
|
|
||||||
# Destinations of artifacts for target architectures
|
|
||||||
TBIN$(1)_T_$(2)_H_$(3) = $$(TROOT$(1)_T_$(2)_H_$(3))/bin
|
|
||||||
TLIB$(1)_T_$(2)_H_$(3) = $$(TROOT$(1)_T_$(2)_H_$(3))/lib
|
|
||||||
|
|
||||||
+# Don't trust stage0, be explicit about libraries
|
|
||||||
+# TODO: rather than specifying sysroot, we really want to tell which libdir to
|
|
||||||
+# use (ie: the dir containing 'rustlib'). This would allow us to avoid
|
|
||||||
+# passing the '-L' options.
|
|
||||||
+ifeq ($(1),0)
|
|
||||||
+RUSTFLAGS_S_$(1)_T_$(2)_H_$(3) += --sysroot "$$(HROOT$(1)_H_$(3))" \
|
|
||||||
+ -L "$$(TLIB$(1)_T_$(2)_H_$(3))"
|
|
||||||
+endif
|
|
||||||
+
|
|
||||||
+
|
|
||||||
# Preqrequisites for using the stageN compiler
|
|
||||||
ifeq ($(1),0)
|
|
||||||
HSREQ$(1)_H_$(3) = $$(HBIN$(1)_H_$(3))/rustc$$(X_$(3))
|
|
||||||
@@ -558,6 +552,7 @@ STAGE$(1)_T_$(2)_H_$(3) := \
|
|
||||||
$$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \
|
|
||||||
--cfg $$(CFGFLAG$(1)_T_$(2)_H_$(3)) \
|
|
||||||
$$(CFG_RUSTC_FLAGS) $$(EXTRAFLAGS_STAGE$(1)) --target=$(2)) \
|
|
||||||
+ $$(RUSTFLAGS_S_$(1)_T_$(2)_H_$(3)) \
|
|
||||||
$$(RUSTC_FLAGS_$(2))
|
|
||||||
|
|
||||||
endef
|
|
||||||
--
|
|
||||||
2.10.0
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
From 128503bf447e82b9e99bea8ef83294a6446036b5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cody P Schafer <dev@codyps.com>
|
|
||||||
Date: Tue, 18 Nov 2014 13:48:14 -0500
|
|
||||||
Subject: [PATCH 03/10] mk: add missing CFG_LIBDIR_RELATIVE
|
|
||||||
|
|
||||||
---
|
|
||||||
mk/grammar.mk | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/mk/grammar.mk b/mk/grammar.mk
|
|
||||||
index 0d527bd..926f247 100644
|
|
||||||
--- a/mk/grammar.mk
|
|
||||||
+++ b/mk/grammar.mk
|
|
||||||
@@ -11,8 +11,8 @@
|
|
||||||
BG = $(CFG_BUILD_DIR)/grammar/
|
|
||||||
SG = $(S)src/grammar/
|
|
||||||
B = $(CFG_BUILD_DIR)/$(CFG_BUILD)/stage2/
|
|
||||||
-L = $(B)lib/rustlib/$(CFG_BUILD)/lib
|
|
||||||
-LD = $(CFG_BUILD)/stage2/lib/rustlib/$(CFG_BUILD)/lib/
|
|
||||||
+L = $(B)$(CFG_LIBDIR_RELATIVE)/rustlib/$(CFG_BUILD)/lib
|
|
||||||
+LD = $(CFG_BUILD)/stage2/$(CFG_LIBDIR_RELATIVE)/rustlib/$(CFG_BUILD)/lib/
|
|
||||||
RUSTC = $(STAGE2_T_$(CFG_BUILD)_H_$(CFG_BUILD))
|
|
||||||
ifeq ($(CFG_OSTYPE),apple-darwin)
|
|
||||||
FLEX_LDFLAGS=-ll
|
|
||||||
--
|
|
||||||
2.10.0
|
|
||||||
|
|
||||||
-25
@@ -1,25 +0,0 @@
|
|||||||
From d73ce5d99346812fcf063a87b4efac54c263737d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cody P Schafer <dev@codyps.com>
|
|
||||||
Date: Wed, 3 Dec 2014 19:15:19 -0500
|
|
||||||
Subject: [PATCH 05/10] std/thread_local: workaround for NULL __dso_handle
|
|
||||||
|
|
||||||
---
|
|
||||||
src/libstd/thread/local.rs | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/libstd/thread/local.rs b/src/libstd/thread/local.rs
|
|
||||||
index 152b977..3c62862 100644
|
|
||||||
--- a/src/libstd/thread/local.rs
|
|
||||||
+++ b/src/libstd/thread/local.rs
|
|
||||||
@@ -380,7 +380,7 @@ pub mod elf {
|
|
||||||
#[linkage = "extern_weak"]
|
|
||||||
static __cxa_thread_atexit_impl: *const libc::c_void;
|
|
||||||
}
|
|
||||||
- if !__cxa_thread_atexit_impl.is_null() {
|
|
||||||
+ if !__cxa_thread_atexit_impl.is_null() && !__dso_handle.is_null() {
|
|
||||||
type F = unsafe extern fn(dtor: unsafe extern fn(*mut u8),
|
|
||||||
arg: *mut u8,
|
|
||||||
dso_handle: *mut u8) -> libc::c_int;
|
|
||||||
--
|
|
||||||
2.10.0
|
|
||||||
|
|
||||||
-30
@@ -1,30 +0,0 @@
|
|||||||
From f8d4b1ea925789bca1aa6261017d63f5efa95c0f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cody P Schafer <dev@codyps.com>
|
|
||||||
Date: Mon, 2 Mar 2015 13:34:59 -0500
|
|
||||||
Subject: [PATCH 06/10] mk/install: use disable-rewrite-paths
|
|
||||||
|
|
||||||
This stops the install scripts from doing work we've already handled.
|
|
||||||
|
|
||||||
Path rewriting is only useful for prepackaged binary installers.
|
|
||||||
---
|
|
||||||
mk/install.mk | 4 +++-
|
|
||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/mk/install.mk b/mk/install.mk
|
|
||||||
index d2e5449..e67650b 100644
|
|
||||||
--- a/mk/install.mk
|
|
||||||
+++ b/mk/install.mk
|
|
||||||
@@ -12,7 +12,9 @@ RUN_INSTALLER = cd tmp/empty_dir && \
|
|
||||||
sh ../../tmp/dist/$(1)/install.sh \
|
|
||||||
--prefix="$(DESTDIR)$(CFG_PREFIX)" \
|
|
||||||
--libdir="$(DESTDIR)$(CFG_LIBDIR)" \
|
|
||||||
- --mandir="$(DESTDIR)$(CFG_MANDIR)"
|
|
||||||
+ --mandir="$(DESTDIR)$(CFG_MANDIR)" \
|
|
||||||
+ "$(MAYBE_DISABLE_VERIFY)" \
|
|
||||||
+ --disable-rewrite-paths
|
|
||||||
|
|
||||||
install:
|
|
||||||
ifeq (root user, $(USER) $(patsubst %,user,$(SUDO_USER)))
|
|
||||||
--
|
|
||||||
2.10.0
|
|
||||||
|
|
||||||
-65
@@ -1,65 +0,0 @@
|
|||||||
From 2a42d59c3671f3ab68d8ff49c46240842aff6eb6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Steven Walter <swalter@lexmark.com>
|
|
||||||
Date: Wed, 18 Nov 2015 08:33:26 -0500
|
|
||||||
Subject: [PATCH 07/10] Allow overriding crate_hash with -C crate_hash
|
|
||||||
|
|
||||||
The current crate hash is not stable from run-to-run. This causes
|
|
||||||
problems with bitbake; it needs a guarantee that every build with the
|
|
||||||
same input will generate compatible output, otherwise sstate won't work.
|
|
||||||
Using -C crate_hash, we can do that by using the bitbake input hash to
|
|
||||||
determine the crate hash; the bitbake input hash will be stable, but
|
|
||||||
still different for different rust recipes.
|
|
||||||
|
|
||||||
Upstream-Status: not-appropriate
|
|
||||||
|
|
||||||
Upstream wants to fix it's actual object generation here. See
|
|
||||||
https://github.com/rust-lang/rust/issues/34902 (and others) for details.
|
|
||||||
---
|
|
||||||
src/librustc/session/config.rs | 2 ++
|
|
||||||
src/librustc_trans/back/link.rs | 12 +++++++++++-
|
|
||||||
2 files changed, 13 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs
|
|
||||||
index 563f3ac..52a5130 100644
|
|
||||||
--- a/src/librustc/session/config.rs
|
|
||||||
+++ b/src/librustc/session/config.rs
|
|
||||||
@@ -804,6 +804,8 @@ options! {CodegenOptions, CodegenSetter, basic_codegen_options,
|
|
||||||
"choose the code model to use (rustc --print code-models for details)"),
|
|
||||||
metadata: Vec<String> = (Vec::new(), parse_list, [TRACKED],
|
|
||||||
"metadata to mangle symbol names with"),
|
|
||||||
+ crate_hash: String = ("".to_string(), parse_string, [TRACKED],
|
|
||||||
+ "override crate hash with given value"),
|
|
||||||
extra_filename: String = ("".to_string(), parse_string, [UNTRACKED],
|
|
||||||
"extra data to put in each output filename"),
|
|
||||||
codegen_units: usize = (1, parse_uint, [UNTRACKED],
|
|
||||||
diff --git a/src/librustc_trans/back/link.rs b/src/librustc_trans/back/link.rs
|
|
||||||
index 3cf2500..0e48063 100644
|
|
||||||
--- a/src/librustc_trans/back/link.rs
|
|
||||||
+++ b/src/librustc_trans/back/link.rs
|
|
||||||
@@ -125,12 +125,22 @@ pub fn find_crate_name(sess: Option<&Session>,
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
+use std::hash::{Hasher, SipHasher};
|
|
||||||
+use rustc::hir::svh::Svh;
|
|
||||||
+
|
|
||||||
pub fn build_link_meta<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
|
|
||||||
name: &str)
|
|
||||||
-> LinkMeta {
|
|
||||||
+ let crate_hash = if tcx.sess.opts.cg.crate_hash != "" {
|
|
||||||
+ let mut state = SipHasher::new();
|
|
||||||
+ state.write(tcx.sess.opts.cg.crate_hash.as_bytes());
|
|
||||||
+ Svh::new(state.finish())
|
|
||||||
+ } else {
|
|
||||||
+ tcx.calculate_krate_hash()
|
|
||||||
+ };
|
|
||||||
let r = LinkMeta {
|
|
||||||
crate_name: name.to_owned(),
|
|
||||||
- crate_hash: tcx.calculate_krate_hash(),
|
|
||||||
+ crate_hash: crate_hash,
|
|
||||||
};
|
|
||||||
info!("{:?}", r);
|
|
||||||
return r;
|
|
||||||
--
|
|
||||||
2.10.0
|
|
||||||
|
|
||||||
-27
@@ -1,27 +0,0 @@
|
|||||||
From 174ae38bcc197658dd0ad6bcdae2bb06112e68a2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Steven Walter <swalter@lexmark.com>
|
|
||||||
Date: Wed, 18 Nov 2015 08:41:17 -0500
|
|
||||||
Subject: [PATCH 08/10] mk/platform.mk: pass -C crate_hash to builds
|
|
||||||
|
|
||||||
bitbake recipe will export FORCE_CRATE_HASH
|
|
||||||
|
|
||||||
Upstream-Status: not-appropriate
|
|
||||||
---
|
|
||||||
mk/platform.mk | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/mk/platform.mk b/mk/platform.mk
|
|
||||||
index d601cab..0b5e9f2 100644
|
|
||||||
--- a/mk/platform.mk
|
|
||||||
+++ b/mk/platform.mk
|
|
||||||
@@ -181,6 +181,7 @@ define CFG_MAKE_TOOLCHAIN
|
|
||||||
AR_$(1)=$(CROSS_PREFIX_$(1))$(AR_$(1))
|
|
||||||
LINK_$(1)=$(CROSS_PREFIX_$(1))$(LINK_$(1))
|
|
||||||
RUSTC_CROSS_FLAGS_$(1)=-C linker=$$(call FIND_COMPILER,$$(LINK_$(1))) \
|
|
||||||
+ -C crate_hash=$(FORCE_CRATE_HASH) \
|
|
||||||
-C ar=$$(call FIND_COMPILER,$$(AR_$(1))) $(RUSTC_CROSS_FLAGS_$(1))
|
|
||||||
|
|
||||||
RUSTC_FLAGS_$(1)=$$(RUSTC_CROSS_FLAGS_$(1)) $(RUSTC_FLAGS_$(1))
|
|
||||||
--
|
|
||||||
2.10.0
|
|
||||||
|
|
||||||
-58
@@ -1,58 +0,0 @@
|
|||||||
From c7daec775a917d9e3017bc35ea7d88cc9418f181 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cody P Schafer <dev@codyps.com>
|
|
||||||
Date: Mon, 2 Mar 2015 13:27:49 -0500
|
|
||||||
Subject: [PATCH] add option to disable rewriting of install paths
|
|
||||||
|
|
||||||
This is intended for use by rust & cargo's `make install`, as in that
|
|
||||||
case:
|
|
||||||
|
|
||||||
- these paths are typically built into the pre-install layout already
|
|
||||||
- attempting to do the replacement will be incorrect subdirectory
|
|
||||||
cases (ie: libdir=lib/foo)
|
|
||||||
---
|
|
||||||
install-template.sh | 21 ++++++++++++---------
|
|
||||||
1 file changed, 12 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/install-template.sh b/install-template.sh
|
|
||||||
index 042b955..4ecf430 100644
|
|
||||||
--- a/install-template.sh
|
|
||||||
+++ b/install-template.sh
|
|
||||||
@@ -618,16 +618,18 @@ install_components() {
|
|
||||||
# Decide the destination of the file
|
|
||||||
local _file_install_path="$_dest_prefix/$_file"
|
|
||||||
|
|
||||||
- if echo "$_file" | grep "^lib/" > /dev/null
|
|
||||||
- then
|
|
||||||
- local _f="$(echo "$_file" | sed 's/^lib\///')"
|
|
||||||
- _file_install_path="$CFG_LIBDIR/$_f"
|
|
||||||
- fi
|
|
||||||
+ if [ -n "${CFG_REWRITE_PATHS-}" ]; then
|
|
||||||
+ if echo "$_file" | grep "^lib/" > /dev/null
|
|
||||||
+ then
|
|
||||||
+ local _f="$(echo "$_file" | sed 's/^lib\///')"
|
|
||||||
+ _file_install_path="$CFG_LIBDIR/$_f"
|
|
||||||
+ fi
|
|
||||||
|
|
||||||
- if echo "$_file" | grep "^share/man/" > /dev/null
|
|
||||||
- then
|
|
||||||
- local _f="$(echo "$_file" | sed 's/^share\/man\///')"
|
|
||||||
- _file_install_path="$CFG_MANDIR/$_f"
|
|
||||||
+ if echo "$_file" | grep "^share/man/" > /dev/null
|
|
||||||
+ then
|
|
||||||
+ local _f="$(echo "$_file" | sed 's/^share\/man\///')"
|
|
||||||
+ _file_install_path="$CFG_MANDIR/$_f"
|
|
||||||
+ fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Make sure there's a directory for it
|
|
||||||
@@ -810,6 +812,7 @@ valopt mandir "$CFG_DESTDIR_PREFIX/share/man" "install man pages in PATH"
|
|
||||||
opt ldconfig 1 "run ldconfig after installation (Linux only)"
|
|
||||||
opt verify 1 "obsolete"
|
|
||||||
flag verbose "run with verbose output"
|
|
||||||
+opt rewrite-paths 1 "rewrite install paths for libdir & mandir"
|
|
||||||
|
|
||||||
if [ $HELP -eq 1 ]
|
|
||||||
then
|
|
||||||
--
|
|
||||||
2.4.1
|
|
||||||
|
|
||||||
-58
@@ -1,58 +0,0 @@
|
|||||||
From c7daec775a917d9e3017bc35ea7d88cc9418f181 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cody P Schafer <dev@codyps.com>
|
|
||||||
Date: Mon, 2 Mar 2015 13:27:49 -0500
|
|
||||||
Subject: [PATCH] add option to disable rewriting of install paths
|
|
||||||
|
|
||||||
This is intended for use by rust & cargo's `make install`, as in that
|
|
||||||
case:
|
|
||||||
|
|
||||||
- these paths are typically built into the pre-install layout already
|
|
||||||
- attempting to do the replacement will be incorrect subdirectory
|
|
||||||
cases (ie: libdir=lib/foo)
|
|
||||||
---
|
|
||||||
install-template.sh | 21 ++++++++++++---------
|
|
||||||
1 file changed, 12 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/install-template.sh b/install-template.sh
|
|
||||||
index 042b955..4ecf430 100644
|
|
||||||
--- a/install-template.sh
|
|
||||||
+++ b/install-template.sh
|
|
||||||
@@ -618,16 +618,18 @@ install_components() {
|
|
||||||
# Decide the destination of the file
|
|
||||||
local _file_install_path="$_dest_prefix/$_file"
|
|
||||||
|
|
||||||
- if echo "$_file" | grep "^lib/" > /dev/null
|
|
||||||
- then
|
|
||||||
- local _f="$(echo "$_file" | sed 's/^lib\///')"
|
|
||||||
- _file_install_path="$CFG_LIBDIR/$_f"
|
|
||||||
- fi
|
|
||||||
+ if [ -n "${CFG_REWRITE_PATHS-}" ]; then
|
|
||||||
+ if echo "$_file" | grep "^lib/" > /dev/null
|
|
||||||
+ then
|
|
||||||
+ local _f="$(echo "$_file" | sed 's/^lib\///')"
|
|
||||||
+ _file_install_path="$CFG_LIBDIR/$_f"
|
|
||||||
+ fi
|
|
||||||
|
|
||||||
- if echo "$_file" | grep "^share/man/" > /dev/null
|
|
||||||
- then
|
|
||||||
- local _f="$(echo "$_file" | sed 's/^share\/man\///')"
|
|
||||||
- _file_install_path="$CFG_MANDIR/$_f"
|
|
||||||
+ if echo "$_file" | grep "^share/man/" > /dev/null
|
|
||||||
+ then
|
|
||||||
+ local _f="$(echo "$_file" | sed 's/^share\/man\///')"
|
|
||||||
+ _file_install_path="$CFG_MANDIR/$_f"
|
|
||||||
+ fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Make sure there's a directory for it
|
|
||||||
@@ -810,6 +812,7 @@ valopt mandir "$CFG_DESTDIR_PREFIX/share/man" "install man pages in PATH"
|
|
||||||
opt ldconfig 1 "run ldconfig after installation (Linux only)"
|
|
||||||
opt verify 1 "obsolete"
|
|
||||||
flag verbose "run with verbose output"
|
|
||||||
+opt rewrite-paths 1 "rewrite install paths for libdir & mandir"
|
|
||||||
|
|
||||||
if [ $HELP -eq 1 ]
|
|
||||||
then
|
|
||||||
--
|
|
||||||
2.4.1
|
|
||||||
|
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
SUMMARY = "Rust standard libaries"
|
||||||
|
HOMEPAGE = "http://www.rust-lang.org"
|
||||||
|
SECTION = "devel"
|
||||||
|
LICENSE = "MIT | Apache-2.0"
|
||||||
|
|
||||||
|
RUSTLIB_DEP = ""
|
||||||
|
inherit cargo
|
||||||
|
|
||||||
|
# Needed so cargo can find libbacktrace
|
||||||
|
RUSTFLAGS += "-L ${STAGING_LIBDIR} -C link-arg=-Wl,-soname,libstd.so"
|
||||||
|
|
||||||
|
S = "${RUSTSRC}/src/libstd"
|
||||||
|
|
||||||
|
do_compile_prepend () {
|
||||||
|
export CARGO_TARGET_DIR="${B}"
|
||||||
|
# For Rust 1.13.0 and newer
|
||||||
|
export RUSTC_BOOTSTRAP="1"
|
||||||
|
}
|
||||||
|
|
||||||
|
do_install () {
|
||||||
|
mkdir -p ${D}${rustlibdir}
|
||||||
|
|
||||||
|
# With the incremental build support added in 1.24, the libstd deps directory also includes dependency
|
||||||
|
# files that get installed. Those are really only needed to incrementally rebuild the libstd library
|
||||||
|
# itself and don't need to be installed.
|
||||||
|
rm ${B}/${TARGET_SYS}/${BUILD_DIR}/deps/*.d
|
||||||
|
cp ${B}/${TARGET_SYS}/${BUILD_DIR}/deps/* ${D}${rustlibdir}
|
||||||
|
}
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
SUMMARY = "Rust standard libaries"
|
|
||||||
HOMEPAGE = "http://www.rust-lang.org"
|
|
||||||
SECTION = "devel"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM ="file://COPYRIGHT;md5=43e1f1fb9c0ee3af66693d8c4fecafa8"
|
|
||||||
|
|
||||||
SRC_URI = "\
|
|
||||||
https://static.rust-lang.org/dist/rustc-${PV}-src.tar.gz;name=rust \
|
|
||||||
"
|
|
||||||
|
|
||||||
require rust-source-${PV}.inc
|
|
||||||
|
|
||||||
S = "${WORKDIR}/rustc-${PV}"
|
|
||||||
|
|
||||||
CARGO_INDEX_COMMIT = "6127fc24b0b6fe73fe4d339817fbf000b9a798a2"
|
|
||||||
|
|
||||||
SRC_URI += "\
|
|
||||||
crate://crates.io/gcc/0.3.26 \
|
|
||||||
crate-index://crates.io/${CARGO_INDEX_COMMIT} \
|
|
||||||
"
|
|
||||||
|
|
||||||
DEPENDS += "compiler-rt (=${PV})"
|
|
||||||
|
|
||||||
RUSTLIB_DEP = ""
|
|
||||||
inherit cargo
|
|
||||||
|
|
||||||
# Needed so cargo can find libbacktrace
|
|
||||||
RUSTFLAGS += "-L ${STAGING_LIBDIR}"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/rustc-${PV}"
|
|
||||||
|
|
||||||
do_compile_prepend () {
|
|
||||||
cd ${S}/src/rustc/std_shim
|
|
||||||
export CARGO_TARGET_DIR="${B}"
|
|
||||||
export RUSTC_BOOTSTRAP_KEY="${RS_KEY}"
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
mkdir -p ${D}${rustlibdir}
|
|
||||||
cp ${B}/${TARGET_SYS}/release/deps/* ${D}${rustlibdir}
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
SUMMARY = "Rust standard libaries"
|
|
||||||
HOMEPAGE = "http://www.rust-lang.org"
|
|
||||||
SECTION = "devel"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
LIC_FILES_CHKSUM ="file://COPYRIGHT;md5=43e1f1fb9c0ee3af66693d8c4fecafa8"
|
|
||||||
|
|
||||||
require rust-source-${PV}.inc
|
|
||||||
|
|
||||||
S = "${WORKDIR}/rustc-${PV}"
|
|
||||||
|
|
||||||
CARGO_INDEX_COMMIT = "6127fc24b0b6fe73fe4d339817fbf000b9a798a2"
|
|
||||||
|
|
||||||
SRC_URI += "\
|
|
||||||
crate://crates.io/gcc/0.3.27 \
|
|
||||||
crate-index://crates.io/${CARGO_INDEX_COMMIT} \
|
|
||||||
"
|
|
||||||
|
|
||||||
DEPENDS += "compiler-rt (=${PV})"
|
|
||||||
|
|
||||||
RUSTLIB_DEP = ""
|
|
||||||
inherit cargo
|
|
||||||
|
|
||||||
# Needed so cargo can find libbacktrace
|
|
||||||
RUSTFLAGS += "-L ${STAGING_LIBDIR}"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/rustc-${PV}"
|
|
||||||
|
|
||||||
do_compile_prepend () {
|
|
||||||
cd ${S}/src/rustc/std_shim
|
|
||||||
export CARGO_TARGET_DIR="${B}"
|
|
||||||
export RUSTC_BOOTSTRAP_KEY="${RS_KEY}"
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
mkdir -p ${D}${rustlibdir}
|
|
||||||
cp ${B}/${TARGET_SYS}/release/deps/* ${D}${rustlibdir}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,211 @@
|
|||||||
|
require rust-source-${PV}.inc
|
||||||
|
require libstd-rs.inc
|
||||||
|
|
||||||
|
LIC_FILES_CHKSUM = "file://../../COPYRIGHT;md5=99c369ad81a36cd5b27f6c6968d01055"
|
||||||
|
|
||||||
|
# Don't use jemalloc as it doesn't work for many targets.
|
||||||
|
# https://github.com/rust-lang/rust/pull/37392
|
||||||
|
CARGO_BUILD_FLAGS += "--features 'panic-unwind'"
|
||||||
|
|
||||||
|
# These are taken from src/libstd/Cargo.toml via cargo-bitbake
|
||||||
|
SRC_URI += " \
|
||||||
|
crate://crates.io/aho-corasick/0.6.4 \
|
||||||
|
crate://crates.io/ansi_term/0.11.0 \
|
||||||
|
crate://crates.io/ar/0.3.1 \
|
||||||
|
crate://crates.io/arrayvec/0.4.7 \
|
||||||
|
crate://crates.io/atty/0.2.8 \
|
||||||
|
crate://crates.io/backtrace-sys/0.1.16 \
|
||||||
|
crate://crates.io/backtrace/0.3.5 \
|
||||||
|
crate://crates.io/bitflags/0.7.0 \
|
||||||
|
crate://crates.io/bitflags/0.9.1 \
|
||||||
|
crate://crates.io/bitflags/1.0.1 \
|
||||||
|
crate://crates.io/bufstream/0.1.3 \
|
||||||
|
crate://crates.io/byteorder/1.2.1 \
|
||||||
|
crate://crates.io/cargo_metadata/0.2.3 \
|
||||||
|
crate://crates.io/cargo_metadata/0.5.3 \
|
||||||
|
crate://crates.io/cc/1.0.9 \
|
||||||
|
crate://crates.io/cfg-if/0.1.2 \
|
||||||
|
crate://crates.io/chrono/0.4.0 \
|
||||||
|
crate://crates.io/clap/2.31.2 \
|
||||||
|
crate://crates.io/cmake/0.1.29 \
|
||||||
|
crate://crates.io/commoncrypto-sys/0.2.0 \
|
||||||
|
crate://crates.io/commoncrypto/0.2.0 \
|
||||||
|
crate://crates.io/compiletest_rs/0.3.8 \
|
||||||
|
crate://crates.io/core-foundation-sys/0.5.1 \
|
||||||
|
crate://crates.io/core-foundation/0.5.1 \
|
||||||
|
crate://crates.io/crossbeam-deque/0.2.0 \
|
||||||
|
crate://crates.io/crossbeam-epoch/0.3.0 \
|
||||||
|
crate://crates.io/crossbeam-utils/0.2.2 \
|
||||||
|
crate://crates.io/crossbeam/0.3.2 \
|
||||||
|
crate://crates.io/crypto-hash/0.3.1 \
|
||||||
|
crate://crates.io/curl-sys/0.4.1 \
|
||||||
|
crate://crates.io/curl/0.4.11 \
|
||||||
|
crate://crates.io/derive-new/0.5.1 \
|
||||||
|
crate://crates.io/diff/0.1.11 \
|
||||||
|
crate://crates.io/dtoa/0.4.2 \
|
||||||
|
crate://crates.io/either/1.4.0 \
|
||||||
|
crate://crates.io/ena/0.9.2 \
|
||||||
|
crate://crates.io/endian-type/0.1.2 \
|
||||||
|
crate://crates.io/enum_primitive/0.1.1 \
|
||||||
|
crate://crates.io/env_logger/0.5.6 \
|
||||||
|
crate://crates.io/error-chain/0.11.0 \
|
||||||
|
crate://crates.io/failure/0.1.1 \
|
||||||
|
crate://crates.io/failure_derive/0.1.1 \
|
||||||
|
crate://crates.io/filetime/0.1.15 \
|
||||||
|
crate://crates.io/flate2/1.0.1 \
|
||||||
|
crate://crates.io/fnv/1.0.6 \
|
||||||
|
crate://crates.io/foreign-types-shared/0.1.1 \
|
||||||
|
crate://crates.io/foreign-types/0.3.2 \
|
||||||
|
crate://crates.io/fs2/0.4.3 \
|
||||||
|
crate://crates.io/fuchsia-zircon-sys/0.3.3 \
|
||||||
|
crate://crates.io/fuchsia-zircon/0.3.3 \
|
||||||
|
crate://crates.io/futures/0.1.17 \
|
||||||
|
crate://crates.io/getopts/0.2.15 \
|
||||||
|
crate://crates.io/git2-curl/0.8.1 \
|
||||||
|
crate://crates.io/git2/0.7.1 \
|
||||||
|
crate://crates.io/glob/0.2.11 \
|
||||||
|
crate://crates.io/globset/0.3.0 \
|
||||||
|
crate://crates.io/handlebars/0.29.1 \
|
||||||
|
crate://crates.io/hex/0.3.1 \
|
||||||
|
crate://crates.io/home/0.3.2 \
|
||||||
|
crate://crates.io/humantime/1.1.1 \
|
||||||
|
crate://crates.io/idna/0.1.4 \
|
||||||
|
crate://crates.io/if_chain/0.1.2 \
|
||||||
|
crate://crates.io/ignore/0.4.1 \
|
||||||
|
crate://crates.io/is-match/0.1.0 \
|
||||||
|
crate://crates.io/itertools/0.7.6 \
|
||||||
|
crate://crates.io/itoa/0.4.1 \
|
||||||
|
crate://crates.io/jobserver/0.1.11 \
|
||||||
|
crate://crates.io/json/0.11.12 \
|
||||||
|
crate://crates.io/jsonrpc-core/8.0.1 \
|
||||||
|
crate://crates.io/kernel32-sys/0.2.2 \
|
||||||
|
crate://crates.io/languageserver-types/0.35.0 \
|
||||||
|
crate://crates.io/lazy_static/0.2.11 \
|
||||||
|
crate://crates.io/lazy_static/1.0.0 \
|
||||||
|
crate://crates.io/lazycell/0.6.0 \
|
||||||
|
crate://crates.io/libc/0.2.40 \
|
||||||
|
crate://crates.io/libgit2-sys/0.7.1 \
|
||||||
|
crate://crates.io/libssh2-sys/0.2.6 \
|
||||||
|
crate://crates.io/libz-sys/1.0.18 \
|
||||||
|
crate://crates.io/log/0.3.9 \
|
||||||
|
crate://crates.io/log/0.4.1 \
|
||||||
|
crate://crates.io/log_settings/0.1.1 \
|
||||||
|
crate://crates.io/lzma-sys/0.1.9 \
|
||||||
|
crate://crates.io/matches/0.1.6 \
|
||||||
|
crate://crates.io/mdbook/0.1.2 \
|
||||||
|
crate://crates.io/memchr/2.0.1 \
|
||||||
|
crate://crates.io/memoffset/0.2.1 \
|
||||||
|
crate://crates.io/miniz-sys/0.1.10 \
|
||||||
|
crate://crates.io/miow/0.3.1 \
|
||||||
|
crate://crates.io/nibble_vec/0.0.3 \
|
||||||
|
crate://crates.io/nodrop/0.1.12 \
|
||||||
|
crate://crates.io/num-integer/0.1.36 \
|
||||||
|
crate://crates.io/num-iter/0.1.35 \
|
||||||
|
crate://crates.io/num-traits/0.1.43 \
|
||||||
|
crate://crates.io/num-traits/0.2.2 \
|
||||||
|
crate://crates.io/num/0.1.42 \
|
||||||
|
crate://crates.io/num_cpus/1.8.0 \
|
||||||
|
crate://crates.io/open/1.2.1 \
|
||||||
|
crate://crates.io/openssl-probe/0.1.2 \
|
||||||
|
crate://crates.io/openssl-sys/0.9.27 \
|
||||||
|
crate://crates.io/openssl/0.10.5 \
|
||||||
|
crate://crates.io/owning_ref/0.3.3 \
|
||||||
|
crate://crates.io/parking_lot/0.5.3 \
|
||||||
|
crate://crates.io/parking_lot_core/0.2.13 \
|
||||||
|
crate://crates.io/percent-encoding/1.0.1 \
|
||||||
|
crate://crates.io/pest/0.3.3 \
|
||||||
|
crate://crates.io/pkg-config/0.3.9 \
|
||||||
|
crate://crates.io/proc-macro2/0.2.3 \
|
||||||
|
crate://crates.io/pulldown-cmark/0.1.2 \
|
||||||
|
crate://crates.io/quick-error/1.2.1 \
|
||||||
|
crate://crates.io/quine-mc_cluskey/0.2.4 \
|
||||||
|
crate://crates.io/quote/0.3.15 \
|
||||||
|
crate://crates.io/quote/0.4.2 \
|
||||||
|
crate://crates.io/racer/2.0.13 \
|
||||||
|
crate://crates.io/radix_trie/0.1.2 \
|
||||||
|
crate://crates.io/rand/0.4.2 \
|
||||||
|
crate://crates.io/rayon-core/1.4.0 \
|
||||||
|
crate://crates.io/rayon/1.0.0 \
|
||||||
|
crate://crates.io/redox_syscall/0.1.37 \
|
||||||
|
crate://crates.io/redox_termios/0.1.1 \
|
||||||
|
crate://crates.io/regex-syntax/0.5.3 \
|
||||||
|
crate://crates.io/regex/0.2.10 \
|
||||||
|
crate://crates.io/remove_dir_all/0.5.0 \
|
||||||
|
crate://crates.io/rls-analysis/0.11.3 \
|
||||||
|
crate://crates.io/rls-blacklist/0.1.0 \
|
||||||
|
crate://crates.io/rls-data/0.15.0 \
|
||||||
|
crate://crates.io/rls-rustc/0.2.2 \
|
||||||
|
crate://crates.io/rls-span/0.4.0 \
|
||||||
|
crate://crates.io/rls-vfs/0.4.5 \
|
||||||
|
crate://crates.io/rustc-ap-rustc_cratesio_shim/94.0.0 \
|
||||||
|
crate://crates.io/rustc-ap-rustc_data_structures/94.0.0 \
|
||||||
|
crate://crates.io/rustc-ap-rustc_errors/94.0.0 \
|
||||||
|
crate://crates.io/rustc-ap-serialize/94.0.0 \
|
||||||
|
crate://crates.io/rustc-ap-syntax/94.0.0 \
|
||||||
|
crate://crates.io/rustc-ap-syntax_pos/94.0.0 \
|
||||||
|
crate://crates.io/rustc-demangle/0.1.7 \
|
||||||
|
crate://crates.io/rustc-serialize/0.3.24 \
|
||||||
|
crate://crates.io/same-file/1.0.2 \
|
||||||
|
crate://crates.io/schannel/0.1.11 \
|
||||||
|
crate://crates.io/scoped-tls/0.1.1 \
|
||||||
|
crate://crates.io/scopeguard/0.3.3 \
|
||||||
|
crate://crates.io/semver-parser/0.7.0 \
|
||||||
|
crate://crates.io/semver/0.9.0 \
|
||||||
|
crate://crates.io/serde/1.0.35 \
|
||||||
|
crate://crates.io/serde_derive/1.0.35 \
|
||||||
|
crate://crates.io/serde_derive_internals/0.22.1 \
|
||||||
|
crate://crates.io/serde_ignored/0.0.4 \
|
||||||
|
crate://crates.io/serde_json/1.0.13 \
|
||||||
|
crate://crates.io/shell-escape/0.1.3 \
|
||||||
|
crate://crates.io/shlex/0.1.1 \
|
||||||
|
crate://crates.io/smallvec/0.6.0 \
|
||||||
|
crate://crates.io/socket2/0.3.4 \
|
||||||
|
crate://crates.io/stable_deref_trait/1.0.0 \
|
||||||
|
crate://crates.io/strsim/0.7.0 \
|
||||||
|
crate://crates.io/syn/0.11.11 \
|
||||||
|
crate://crates.io/syn/0.12.14 \
|
||||||
|
crate://crates.io/synom/0.11.3 \
|
||||||
|
crate://crates.io/synstructure/0.6.1 \
|
||||||
|
crate://crates.io/syntex_errors/0.52.0 \
|
||||||
|
crate://crates.io/syntex_pos/0.52.0 \
|
||||||
|
crate://crates.io/syntex_syntax/0.52.0 \
|
||||||
|
crate://crates.io/tar/0.4.14 \
|
||||||
|
crate://crates.io/tempdir/0.3.7 \
|
||||||
|
crate://crates.io/tempfile/3.0.2 \
|
||||||
|
crate://crates.io/term/0.4.6 \
|
||||||
|
crate://crates.io/term/0.5.1 \
|
||||||
|
crate://crates.io/termcolor/0.3.6 \
|
||||||
|
crate://crates.io/termion/1.5.1 \
|
||||||
|
crate://crates.io/textwrap/0.9.0 \
|
||||||
|
crate://crates.io/thread_local/0.3.5 \
|
||||||
|
crate://crates.io/time/0.1.39 \
|
||||||
|
crate://crates.io/toml-query/0.6.0 \
|
||||||
|
crate://crates.io/toml/0.2.1 \
|
||||||
|
crate://crates.io/toml/0.4.5 \
|
||||||
|
crate://crates.io/ucd-util/0.1.1 \
|
||||||
|
crate://crates.io/unicode-bidi/0.3.4 \
|
||||||
|
crate://crates.io/unicode-normalization/0.1.5 \
|
||||||
|
crate://crates.io/unicode-segmentation/1.2.0 \
|
||||||
|
crate://crates.io/unicode-width/0.1.4 \
|
||||||
|
crate://crates.io/unicode-xid/0.0.3 \
|
||||||
|
crate://crates.io/unicode-xid/0.0.4 \
|
||||||
|
crate://crates.io/unicode-xid/0.1.0 \
|
||||||
|
crate://crates.io/unreachable/1.0.0 \
|
||||||
|
crate://crates.io/url/1.7.0 \
|
||||||
|
crate://crates.io/url_serde/0.2.0 \
|
||||||
|
crate://crates.io/userenv-sys/0.2.0 \
|
||||||
|
crate://crates.io/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/2.1.4 \
|
||||||
|
crate://crates.io/winapi-build/0.1.1 \
|
||||||
|
crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
|
||||||
|
crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
|
||||||
|
crate://crates.io/winapi/0.2.8 \
|
||||||
|
crate://crates.io/winapi/0.3.4 \
|
||||||
|
crate://crates.io/wincolor/0.1.6 \
|
||||||
|
crate://crates.io/xattr/0.1.11 \
|
||||||
|
crate://crates.io/xz2/0.1.4 \
|
||||||
|
crate://crates.io/yaml-rust/0.3.5 \
|
||||||
|
"
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
require rust.inc
|
require rust.inc
|
||||||
inherit cross
|
inherit cross
|
||||||
require rust-source-${PV}.inc
|
|
||||||
|
|
||||||
# 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"
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
require rust.inc
|
|
||||||
inherit cross
|
|
||||||
require rust-source-${PV}.inc
|
|
||||||
|
|
||||||
# Otherwise we'll depend on what we provide
|
|
||||||
INHIBIT_DEFAULT_RUST_DEPS = "1"
|
|
||||||
|
|
||||||
# Unlike native (which nicely maps it's DEPENDS) cross wipes them out completely.
|
|
||||||
# Generally, we (and cross in general) need the same things that native needs,
|
|
||||||
# so it might make sense to take it's mapping. For now, though, we just mention
|
|
||||||
# the bits we need explicitly.
|
|
||||||
DEPENDS += "rust-llvm-native"
|
|
||||||
DEPENDS += "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}compilerlibs virtual/libc"
|
|
||||||
DEPENDS += "rust-native"
|
|
||||||
|
|
||||||
PROVIDES = "virtual/${TARGET_PREFIX}rust"
|
|
||||||
PN = "rust-cross-${TARGET_ARCH}"
|
|
||||||
|
|
||||||
# In the cross compilation case, rustc doesn't seem to get the rpath quite
|
|
||||||
# right. It manages to include '../../lib/${TARGET_PREFIX}', but doesn't
|
|
||||||
# include the '../../lib' (ie: relative path from cross_bindir to normal
|
|
||||||
# libdir. As a result, we end up not being able to properly reference files in normal ${libdir}.
|
|
||||||
# Most of the time this happens to work fine as the systems libraries are
|
|
||||||
# subsituted, but sometimes a host system will lack a library, or the right
|
|
||||||
# version of a library (libtinfo was how I noticed this).
|
|
||||||
#
|
|
||||||
# FIXME: this should really be fixed in rust itself.
|
|
||||||
# FIXME: using hard-coded relative paths is wrong, we should ask bitbake for
|
|
||||||
# the relative path between 2 of it's vars.
|
|
||||||
HOST_POST_LINK_ARGS_append = " -Wl,-rpath=../../lib"
|
|
||||||
BUILD_POST_LINK_ARGS_append = " -Wl,-rpath=../../lib"
|
|
||||||
|
|
||||||
# We need the same thing for the calls to the compiler when building the runtime crap
|
|
||||||
TARGET_CC_ARCH_append = " --sysroot=${STAGING_DIR_TARGET}"
|
|
||||||
|
|
||||||
do_configure () {
|
|
||||||
}
|
|
||||||
|
|
||||||
do_compile () {
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
mkdir -p ${D}${prefix}/${base_libdir_native}/rustlib
|
|
||||||
cp ${WORKDIR}/targets/${TARGET_SYS}.json ${D}${prefix}/${base_libdir_native}/rustlib
|
|
||||||
}
|
|
||||||
|
|
||||||
rust_cross_sysroot_preprocess() {
|
|
||||||
sysroot_stage_dir ${D}${prefix}/${base_libdir_native}/rustlib ${SYSROOT_DESTDIR}${prefix}/${base_libdir_native}/rustlib
|
|
||||||
}
|
|
||||||
SYSROOT_PREPROCESS_FUNCS += "rust_cross_sysroot_preprocess"
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
require rust-cross.inc
|
||||||
|
require rust-source-${PV}.inc
|
||||||
|
require rust-snapshot-${PV}.inc
|
||||||
|
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
SUMMARY = "LLVM compiler framework (packaged with rust)"
|
SUMMARY = "LLVM compiler framework (packaged with rust)"
|
||||||
LICENSE = "NCSA"
|
LICENSE = "NCSA"
|
||||||
|
|
||||||
S = "${WORKDIR}/rustc-${PV}/src/llvm"
|
S = "${RUSTSRC}/src/llvm"
|
||||||
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=4c0bc17c954e99fd547528d938832bfa"
|
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=4c0bc17c954e99fd547528d938832bfa"
|
||||||
|
|
||||||
inherit cmake pythonnative
|
inherit cmake pythonnative
|
||||||
|
|
||||||
EXTRA_OECMAKE = " \
|
EXTRA_OECMAKE = " \
|
||||||
-DLLVM_TARGETS_TO_BUILD='X86;ARM;AArch64;PowerPC' \
|
-DLLVM_TARGETS_TO_BUILD='X86;ARM;AArch64;PowerPC;Mips' \
|
||||||
-DLLVM_ENABLE_ASSERTIONS=OFF \
|
-DLLVM_ENABLE_ASSERTIONS=OFF \
|
||||||
-DLLVM_BUILD_DOCS=OFF \
|
-DLLVM_BUILD_DOCS=OFF \
|
||||||
-DLLVM_ENABLE_TERMINFO=OFF \
|
-DLLVM_ENABLE_TERMINFO=OFF \
|
||||||
@@ -21,56 +21,13 @@ EXTRA_OECMAKE = " \
|
|||||||
-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 \
|
||||||
"
|
"
|
||||||
|
|
||||||
# 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"
|
||||||
|
|
||||||
EXTRA_OECMAKE_append_class-target = "\
|
|
||||||
-DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/native_toolchain.cmake' \
|
|
||||||
"
|
|
||||||
|
|
||||||
do_generate_native_toolchain_file() {
|
|
||||||
cat > ${WORKDIR}/native_toolchain.cmake <<EOF
|
|
||||||
set( CMAKE_SYSTEM_NAME `echo ${BUILD_OS} | sed -e 's/^./\u&/' -e 's/^\(Linux\).*/\1/'` )
|
|
||||||
set( CMAKE_SYSTEM_PROCESSOR ${BUILD_ARCH} )
|
|
||||||
set( CMAKE_C_COMPILER ${BUILD_CC} )
|
|
||||||
set( CMAKE_CXX_COMPILER ${BUILD_CXX} )
|
|
||||||
set( CMAKE_ASM_COMPILER ${BUILD_AS} )
|
|
||||||
set( CMAKE_AR ${BUILD_AR} CACHE FILEPATH "Archiver" )
|
|
||||||
set( CMAKE_C_FLAGS "${BUILD_CC_ARCH} ${BUILD_CFLAGS}" CACHE STRING "CFLAGS" )
|
|
||||||
set( CMAKE_CXX_FLAGS "${BUILD_CC_ARCH} ${BUILD_CXXFLAGS}" CACHE STRING "CXXFLAGS" )
|
|
||||||
set( CMAKE_ASM_FLAGS "${BUILD_CC_ARCH} ${BUILD_CFLAGS}" CACHE STRING "ASM FLAGS" )
|
|
||||||
set( CMAKE_C_FLAGS_RELEASE "${SELECTED_OPTIMIZATION} ${BUILD_CFLAGS} -DNDEBUG" CACHE STRING "CFLAGS for release" )
|
|
||||||
set( CMAKE_CXX_FLAGS_RELEASE "${SELECTED_OPTIMIZATION} ${BUILD_CXXFLAGS} -DNDEBUG" CACHE STRING "CXXFLAGS for release" )
|
|
||||||
set( CMAKE_ASM_FLAGS_RELEASE "${SELECTED_OPTIMIZATION} ${BUILD_CFLAGS} -DNDEBUG" CACHE STRING "ASM FLAGS for release" )
|
|
||||||
set( CMAKE_C_LINK_FLAGS "${BUILD_CC_ARCH} ${BUILD_CPPFLAGS} ${BUILD_LDFLAGS}" CACHE STRING "LDFLAGS" )
|
|
||||||
set( CMAKE_CXX_LINK_FLAGS "${BUILD_CC_ARCH} ${BUILD_CXXFLAGS} ${BUILD_LDFLAGS}" CACHE STRING "LDFLAGS" )
|
|
||||||
|
|
||||||
# only search in the paths provided so cmake doesnt pick
|
|
||||||
# up libraries and tools from the native build machine
|
|
||||||
set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE} ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR} ${OECMAKE_EXTRA_ROOT_PATH} ${EXTERNAL_TOOLCHAIN})
|
|
||||||
set( CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY )
|
|
||||||
set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
|
|
||||||
set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )
|
|
||||||
|
|
||||||
# Use native cmake modules
|
|
||||||
set( CMAKE_MODULE_PATH ${STAGING_DATADIR}/cmake/Modules/ )
|
|
||||||
|
|
||||||
# add for non /usr/lib libdir, e.g. /usr/lib64
|
|
||||||
set( CMAKE_LIBRARY_PATH ${libdir} ${base_libdir})
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
addtask generate_native_toolchain_file after do_patch before do_configure
|
|
||||||
|
|
||||||
do_configure_prepend_class-native() {
|
|
||||||
# Use host paths for native tools
|
|
||||||
sed -i -e '/CMAKE_FIND_ROOT_PATH_MODE/d' ${WORKDIR}/toolchain.cmake
|
|
||||||
}
|
|
||||||
|
|
||||||
do_compile_prepend_class-target() {
|
do_compile_prepend_class-target() {
|
||||||
# Fix paths in 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
|
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
|
||||||
@@ -79,12 +36,6 @@ do_compile_prepend_class-target() {
|
|||||||
sed -i 's:/lib\>:/${baselib}:g' ${S}/tools/llvm-config/llvm-config.cpp
|
sed -i 's:/lib\>:/${baselib}:g' ${S}/tools/llvm-config/llvm-config.cpp
|
||||||
}
|
}
|
||||||
|
|
||||||
do_compile() {
|
|
||||||
oe_runmake NATIVE_LIB_LLVMTABLEGEN
|
|
||||||
oe_runmake NativeLLVMConfig
|
|
||||||
oe_runmake
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install_append_class-target() {
|
do_install_append_class-target() {
|
||||||
# Disable checks on the native tools, since these should came from the native recipe
|
# 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
|
sed -i -e 's/\(.*APPEND.*_IMPORT_CHECK_FILES_FOR_.*{_IMPORT_PREFIX}\/bin\/.*\)/#\1/' ${D}/usr/share/llvm/cmake/LLVMExports-noconfig.cmake
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
require rust-llvm.inc
|
|
||||||
require rust-source-${PV}.inc
|
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
require rust-llvm.inc
|
|
||||||
require rust-source-${PV}.inc
|
require rust-source-${PV}.inc
|
||||||
|
require rust-llvm.inc
|
||||||
|
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=43fdaa303c1c5589ad60f4ffc6a0b9ce"
|
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=e825e017edc35cfd58e26116e5251771"
|
||||||
|
|
||||||
do_install_prepend () {
|
do_install_prepend () {
|
||||||
# the install does a sed on this without installing the file
|
# the install does a sed on this without installing the file
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
# Specifics for Rust 1.26.2
|
||||||
|
|
||||||
|
## 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.25.0"
|
||||||
|
|
||||||
|
RUST_STD_SNAPSHOT = "rust-std-${RS_VERSION}-${BUILD_ARCH}-unknown-linux-gnu"
|
||||||
|
RUSTC_SNAPSHOT = "rustc-${RS_VERSION}-${BUILD_ARCH}-unknown-linux-gnu"
|
||||||
|
CARGO_VERSION = "0.26.0"
|
||||||
|
CARGO_SNAPSHOT = "cargo-${CARGO_VERSION}-${BUILD_ARCH}-unknown-linux-gnu"
|
||||||
|
|
||||||
|
SRC_URI += " \
|
||||||
|
https://static.rust-lang.org/dist/${RUST_STD_SNAPSHOT}.tar.gz;name=rust-std-snapshot-${BUILD_ARCH};subdir=rust-snapshot-components \
|
||||||
|
https://static.rust-lang.org/dist/${RUSTC_SNAPSHOT}.tar.gz;name=rustc-snapshot-${BUILD_ARCH};subdir=rust-snapshot-components \
|
||||||
|
https://static.rust-lang.org/dist/${CARGO_SNAPSHOT}.tar.gz;name=cargo-snapshot-${BUILD_ARCH};subdir=rust-snapshot-components \
|
||||||
|
"
|
||||||
|
|
||||||
|
# TODO: Add hashes for other architecture toolchains as well. Make a script?
|
||||||
|
SRC_URI[rustc-snapshot-x86_64.md5sum] = "6e9c8ae2946cf6626ad6511c7a1d6c2a"
|
||||||
|
SRC_URI[rustc-snapshot-x86_64.sha256sum] = "f8f4ae2f4b76416bfa90758267df4280dd078235dfba92dac0431595493443be"
|
||||||
|
SRC_URI[rust-std-snapshot-x86_64.md5sum] = "37e9f9193413caba47134af3306328c5"
|
||||||
|
SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "a3258308e3a9fe364d63b5d782efb285ab410bdfc01d168c119122ddbc9a02e2"
|
||||||
|
SRC_URI[cargo-snapshot-x86_64.md5sum] = "b0de62d86f0ba71078471d09916873c6"
|
||||||
|
SRC_URI[cargo-snapshot-x86_64.sha256sum] = "9ba227f2364f618dc9415dacf3a5dce17458e1cb9f6d4fe860416cb68db894e4"
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
# Specifics for Rust 1.10.0
|
|
||||||
|
|
||||||
## snapshot info 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.9.0"
|
|
||||||
RS_KEY = "e8edd0fd"
|
|
||||||
|
|
||||||
RUST_SNAPSHOT = "rustc-${RS_VERSION}-${RUST_BUILD_SYS}"
|
|
||||||
|
|
||||||
# These are x86_64-unknown-linux-gnu hashes, how can we add more?
|
|
||||||
SRC_URI[rust-snapshot.md5sum] = "f1cf6d2fe15e4be18a08259f1540a4ae"
|
|
||||||
SRC_URI[rust-snapshot.sha256sum] = "d0704d10237c66c3efafa6f7e5570c59a1d3fe5c6d99487540f90ebb37cd84c4"
|
|
||||||
|
|
||||||
SRC_URI[rust.md5sum] = "a48fef30353fc9daa70b484b690ce5db"
|
|
||||||
SRC_URI[rust.sha256sum] = "a4015aacf4f6d8a8239253c4da46e7abaa8584f8214d1828d2ff0a8f56176869"
|
|
||||||
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
# Specifics for Rust 1.12.1
|
|
||||||
|
|
||||||
## This is information on the rust-snapshot (binary) used to build our current release.
|
|
||||||
## snapshot info is taken from rust/src/stage0.txt
|
|
||||||
## TODO: find a way to add additional SRC_URIs based on the contents of an
|
|
||||||
## earlier SRC_URI.
|
|
||||||
RS_VERSION = "1.11.0"
|
|
||||||
RS_KEY = "5c6cf767"
|
|
||||||
|
|
||||||
RUST_SNAPSHOT = "rustc-${RS_VERSION}-${RUST_BUILD_SYS}"
|
|
||||||
|
|
||||||
# These are x86_64-unknown-linux-gnu hashes, how can we add more?
|
|
||||||
SRC_URI[rust-snapshot.md5sum] = "b83d7a1a90c2d80bef97a518022948c8"
|
|
||||||
SRC_URI[rust-snapshot.sha256sum] = "e9d27a72900da33c1bbd0e59dd42fd6414c6bcdfa33593fb7c7360068406394a"
|
|
||||||
|
|
||||||
SRC_URI += "\
|
|
||||||
https://static.rust-lang.org/dist/rustc-${PV}-src.tar.gz;name=rust \
|
|
||||||
"
|
|
||||||
SRC_URI[rust.md5sum] = "82db5a9cb9a051bf8ece2f5174cb273b"
|
|
||||||
SRC_URI[rust.sha256sum] = "97913ae4cb255618aaacd1a534b11f343634b040b32656250d09d8d9ec02d3dc"
|
|
||||||
|
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# Specifics for Rust 1.26.2
|
||||||
|
|
||||||
|
SRC_URI += " \
|
||||||
|
https://static.rust-lang.org/dist/rustc-${PV}-src.tar.gz;name=rust \
|
||||||
|
"
|
||||||
|
|
||||||
|
SRC_URI[md5sum] = "581bc81b4695cff0d9b7c57a144d01cc"
|
||||||
|
SRC_URI[sha256sum] = "fb9ecf304488c9b56600ab20cfd1937482057f7e5db7899fddb86e0774548700"
|
||||||
|
SRC_URI[rust.md5sum] = "581bc81b4695cff0d9b7c57a144d01cc"
|
||||||
|
SRC_URI[rust.sha256sum] = "fb9ecf304488c9b56600ab20cfd1937482057f7e5db7899fddb86e0774548700"
|
||||||
|
|
||||||
|
|
||||||
|
# later versions of rust change the directory that they unextract to
|
||||||
|
RUSTSRC = "${WORKDIR}/rustc-${PV}-src"
|
||||||
|
# set this as our default
|
||||||
|
S = "${RUSTSRC}"
|
||||||
|
|
||||||
|
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=99c369ad81a36cd5b27f6c6968d01055"
|
||||||
+210
-186
@@ -2,23 +2,31 @@ 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=43e1f1fb9c0ee3af66693d8c4fecafa8"
|
|
||||||
|
|
||||||
inherit rust
|
inherit rust
|
||||||
|
inherit cargo_common
|
||||||
|
|
||||||
SRC_URI = "\
|
DEPENDS += "file-native python-native"
|
||||||
https://static.rust-lang.org/dist/${RUST_SNAPSHOT}.tar.gz;name=rust-snapshot \
|
|
||||||
"
|
|
||||||
|
|
||||||
S = "${WORKDIR}/rustc-${PV}"
|
|
||||||
|
|
||||||
DEPENDS += "file-native"
|
|
||||||
|
|
||||||
# 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}"
|
||||||
|
|
||||||
|
# We can't use RUST_BUILD_SYS here because that may be "musl" if
|
||||||
|
# TCLIBC="musl". Snapshots are always -unknown-linux-gnu
|
||||||
|
SNAPSHOT_BUILD_SYS = "${BUILD_ARCH}-unknown-linux-gnu"
|
||||||
|
setup_cargo_environment () {
|
||||||
|
# The first step is to build bootstrap and some early stage tools,
|
||||||
|
# these are build for the same target as the snapshot, e.g.
|
||||||
|
# x86_64-unknown-linux-gnu.
|
||||||
|
# Later stages are build for the native target (i.e. target.x86_64-linux)
|
||||||
|
cargo_common_do_configure
|
||||||
|
|
||||||
|
printf '[target.%s]\n' "${SNAPSHOT_BUILD_SYS}" >> ${CARGO_HOME}/config
|
||||||
|
printf "linker = '%s'\n" "${RUST_BUILD_CCLD}" >> ${CARGO_HOME}/config
|
||||||
|
}
|
||||||
|
|
||||||
# Right now this is focused on arm-specific tune features.
|
# 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
|
# We get away with this for now as one can only use x86-64 as the build host
|
||||||
# (not arm).
|
# (not arm).
|
||||||
@@ -26,9 +34,9 @@ export FORCE_CRATE_HASH="${BB_TASKHASH}"
|
|||||||
# don't want to use this for the host/build.
|
# don't want to use this for the host/build.
|
||||||
def llvm_features_from_tune(d):
|
def llvm_features_from_tune(d):
|
||||||
f = []
|
f = []
|
||||||
feat = d.getVar('TUNE_FEATURES', True)
|
feat = d.getVar('TUNE_FEATURES')
|
||||||
if not feat:
|
if not feat:
|
||||||
return ""
|
return []
|
||||||
feat = frozenset(feat.split())
|
feat = frozenset(feat.split())
|
||||||
|
|
||||||
if 'vfpv4' in feat:
|
if 'vfpv4' in feat:
|
||||||
@@ -47,6 +55,12 @@ def llvm_features_from_tune(d):
|
|||||||
if 'aarch64' in feat:
|
if 'aarch64' in feat:
|
||||||
f.append("+v8")
|
f.append("+v8")
|
||||||
|
|
||||||
|
if 'mips32' in feat:
|
||||||
|
f.append("+mips32")
|
||||||
|
|
||||||
|
if 'mips32r2' in feat:
|
||||||
|
f.append("+mips32r2")
|
||||||
|
|
||||||
v7=frozenset(['armv7a', 'armv7r', 'armv7m', 'armv7ve'])
|
v7=frozenset(['armv7a', 'armv7r', 'armv7m', 'armv7ve'])
|
||||||
if not feat.isdisjoint(v7):
|
if not feat.isdisjoint(v7):
|
||||||
f.append("+v7")
|
f.append("+v7")
|
||||||
@@ -56,7 +70,7 @@ def llvm_features_from_tune(d):
|
|||||||
if 'dsp' in feat:
|
if 'dsp' in feat:
|
||||||
f.append("+dsp")
|
f.append("+dsp")
|
||||||
|
|
||||||
if d.getVar('ARM_THUMB_OPT', True) is "thumb":
|
if d.getVar('ARM_THUMB_OPT') is "thumb":
|
||||||
if not feat.isdisjoint(v7):
|
if not feat.isdisjoint(v7):
|
||||||
f.append("+thumb2")
|
f.append("+thumb2")
|
||||||
f.append("+thumb-mode")
|
f.append("+thumb-mode")
|
||||||
@@ -72,21 +86,16 @@ def llvm_features_from_tune(d):
|
|||||||
if 'cortexa17' in feat:
|
if 'cortexa17' in feat:
|
||||||
f.append("+a17")
|
f.append("+a17")
|
||||||
|
|
||||||
# Seems like it could be infered by the lack of vfp options, but we'll
|
return f
|
||||||
# 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
|
# 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
|
# this should go away when https://github.com/rust-lang/rust/pull/31709 is
|
||||||
# stable (1.9.0?)
|
# stable (1.9.0?)
|
||||||
def llvm_features_from_cc_arch(d):
|
def llvm_features_from_cc_arch(d):
|
||||||
f = []
|
f = []
|
||||||
feat = d.getVar('TARGET_CC_ARCH', True)
|
feat = d.getVar('TARGET_CC_ARCH')
|
||||||
if not feat:
|
if not feat:
|
||||||
return ""
|
return []
|
||||||
feat = frozenset(feat.split())
|
feat = frozenset(feat.split())
|
||||||
|
|
||||||
if '-mmmx' in feat:
|
if '-mmmx' in feat:
|
||||||
@@ -110,75 +119,100 @@ def llvm_features_from_cc_arch(d):
|
|||||||
if '-mavx2' in feat:
|
if '-mavx2' in feat:
|
||||||
f.append("+avx2")
|
f.append("+avx2")
|
||||||
|
|
||||||
return ','.join(f)
|
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
|
## arm-unknown-linux-gnueabihf
|
||||||
DATA_LAYOUT[arm] = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
|
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}"
|
LLVM_TARGET[arm] = "${RUST_TARGET_SYS}"
|
||||||
TARGET_ENDIAN[arm] = "little"
|
TARGET_ENDIAN[arm] = "little"
|
||||||
TARGET_POINTER_WIDTH[arm] = "32"
|
TARGET_POINTER_WIDTH[arm] = "32"
|
||||||
|
TARGET_C_INT_WIDTH[arm] = "32"
|
||||||
|
MAX_ATOMIC_WIDTH[arm] = "64"
|
||||||
FEATURES[arm] = "+v6,+vfp2"
|
FEATURES[arm] = "+v6,+vfp2"
|
||||||
|
|
||||||
## aarch64-unknown-linux-gnu
|
## aarch64-unknown-linux-{gnu, musl}
|
||||||
DATA_LAYOUT[aarch64] = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
|
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"
|
LLVM_TARGET[aarch64] = "${RUST_TARGET_SYS}"
|
||||||
TARGET_ENDIAN[aarch64] = "little"
|
TARGET_ENDIAN[aarch64] = "little"
|
||||||
TARGET_POINTER_WIDTH[aarch64] = "64"
|
TARGET_POINTER_WIDTH[aarch64] = "64"
|
||||||
|
TARGET_C_INT_WIDTH[aarch64] = "32"
|
||||||
|
MAX_ATOMIC_WIDTH[aarch64] = "128"
|
||||||
|
|
||||||
## x86_64-unknown-linux-gnu
|
## x86_64-unknown-linux-{gnu, musl}
|
||||||
DATA_LAYOUT[x86_64] = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
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"
|
LLVM_TARGET[x86_64] = "${RUST_TARGET_SYS}"
|
||||||
TARGET_ENDIAN[x86_64] = "little"
|
TARGET_ENDIAN[x86_64] = "little"
|
||||||
TARGET_POINTER_WIDTH[x86_64] = "64"
|
TARGET_POINTER_WIDTH[x86_64] = "64"
|
||||||
|
TARGET_C_INT_WIDTH[x86_64] = "32"
|
||||||
|
MAX_ATOMIC_WIDTH[x86_64] = "64"
|
||||||
|
|
||||||
## i686-unknown-linux-gnu
|
## i686-unknown-linux-{gnu, musl}
|
||||||
DATA_LAYOUT[i686] = "e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128"
|
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"
|
LLVM_TARGET[i686] = "${RUST_TARGET_SYS}"
|
||||||
TARGET_ENDIAN[i686] = "little"
|
TARGET_ENDIAN[i686] = "little"
|
||||||
TARGET_POINTER_WIDTH[i686] = "32"
|
TARGET_POINTER_WIDTH[i686] = "32"
|
||||||
|
TARGET_C_INT_WIDTH[i686] = "32"
|
||||||
|
MAX_ATOMIC_WIDTH[i686] = "64"
|
||||||
|
|
||||||
## XXX: a bit of a hack so qemux86 builds, clone of i686-unknown-linux-gnu above
|
## 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"
|
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"
|
LLVM_TARGET[i586] = "${RUST_TARGET_SYS}"
|
||||||
TARGET_ENDIAN[i586] = "little"
|
TARGET_ENDIAN[i586] = "little"
|
||||||
TARGET_POINTER_WIDTH[i586] = "32"
|
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"
|
||||||
|
|
||||||
def arch_for(d, thing):
|
def arch_for(d, thing):
|
||||||
return d.getVar('{}_ARCH'.format(thing), True)
|
return d.getVar('{}_ARCH'.format(thing))
|
||||||
|
|
||||||
def sys_for(d, thing):
|
def sys_for(d, thing):
|
||||||
return d.getVar('{}_SYS'.format(thing), True)
|
return d.getVar('{}_SYS'.format(thing))
|
||||||
|
|
||||||
def prefix_for(d, thing):
|
def prefix_for(d, thing):
|
||||||
return d.getVar('{}_PREFIX'.format(thing), True)
|
return d.getVar('{}_PREFIX'.format(thing))
|
||||||
|
|
||||||
## Note: TOOLCHAIN_OPTIONS is set to "" by native.bbclass and cross.bbclass,
|
|
||||||
## which prevents us from grabbing them when building a cross compiler (native doesn't matter).
|
|
||||||
## We workaround this in internal-rust-cross.bbclass.
|
|
||||||
def cflags_for(d, thing):
|
|
||||||
cc_arch = d.getVar('{}_CC_ARCH'.format(thing), True) or ""
|
|
||||||
flags = d.getVar('{}_CFLAGS'.format(thing), True) or ""
|
|
||||||
tc = d.getVar('TOOLCHAIN_OPTIONS', True) or ""
|
|
||||||
return ' '.join([cc_arch, flags, tc])
|
|
||||||
|
|
||||||
def cxxflags_for(d, thing):
|
|
||||||
cc_arch = d.getVar('{}_CC_ARCH'.format(thing), True) or ""
|
|
||||||
flags = d.getVar('{}_CXXFLAGS'.format(thing), True) or ""
|
|
||||||
tc = d.getVar('TOOLCHAIN_OPTIONS', True) or ""
|
|
||||||
return ' '.join([cc_arch, flags, tc])
|
|
||||||
|
|
||||||
# Convert a normal arch (HOST_ARCH, TARGET_ARCH, BUILD_ARCH, etc) to something
|
# Convert a normal arch (HOST_ARCH, TARGET_ARCH, BUILD_ARCH, etc) to something
|
||||||
# rust's internals won't choke on.
|
# rust's internals won't choke on.
|
||||||
def arch_to_rust_target_arch(arch):
|
def arch_to_rust_target_arch(arch):
|
||||||
if arch == "i586" or arch == "i686":
|
if arch == "i586" or arch == "i686":
|
||||||
return "x86"
|
return "x86"
|
||||||
|
elif arch == "mipsel":
|
||||||
|
return "mips"
|
||||||
else:
|
else:
|
||||||
return arch
|
return arch
|
||||||
|
|
||||||
# generates our target CPU value
|
# generates our target CPU value
|
||||||
def llvm_cpu(d):
|
def llvm_cpu(d):
|
||||||
cpu = d.getVar('PACKAGE_ARCH', True)
|
cpu = d.getVar('PACKAGE_ARCH')
|
||||||
target = d.getVar('TRANSLATED_TARGET_ARCH', True)
|
target = d.getVar('TRANSLATED_TARGET_ARCH')
|
||||||
|
|
||||||
trans = {}
|
trans = {}
|
||||||
trans['corei7-64'] = "corei7"
|
trans['corei7-64'] = "corei7"
|
||||||
@@ -187,20 +221,30 @@ def llvm_cpu(d):
|
|||||||
trans['i686'] = "i686"
|
trans['i686'] = "i686"
|
||||||
trans['i586'] = "i586"
|
trans['i586'] = "i586"
|
||||||
|
|
||||||
|
if target in ["mips", "mipsel"]:
|
||||||
|
feat = frozenset(d.getVar('TUNE_FEATURES').split())
|
||||||
|
if "mips32r2" in feat:
|
||||||
|
trans['mipsel'] = "mips32r2"
|
||||||
|
trans['mips'] = "mips32r2"
|
||||||
|
elif "mips32" in feat:
|
||||||
|
trans['mipsel'] = "mips32"
|
||||||
|
trans['mips'] = "mips32"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return trans[cpu]
|
return trans[cpu]
|
||||||
except:
|
except:
|
||||||
return trans.get(target, "generic")
|
return trans.get(target, "generic")
|
||||||
|
|
||||||
TARGET_LLVM_CPU="${@llvm_cpu(d)}"
|
TARGET_LLVM_CPU="${@llvm_cpu(d)}"
|
||||||
TARGET_LLVM_FEATURES = "${@llvm_features_from_tune(d)} ${@llvm_features_from_cc_arch(d)}"
|
TARGET_LLVM_FEATURES = "${@llvm_features(d)}"
|
||||||
|
|
||||||
# class-native implies TARGET=HOST, and TUNE_FEATURES only describes the real
|
# class-native implies TARGET=HOST, and TUNE_FEATURES only describes the real
|
||||||
# (original) target.
|
# (original) target.
|
||||||
TARGET_LLVM_FEATURES_class-native = "${@llvm_features_from_cc_arch(d)}"
|
TARGET_LLVM_FEATURES_class-native = "${@','.join(llvm_features_from_cc_arch(d))}"
|
||||||
|
|
||||||
def rust_gen_target(d, thing, wd):
|
def rust_gen_target(d, thing, wd):
|
||||||
import json
|
import json
|
||||||
|
from distutils.version import LooseVersion
|
||||||
arch = arch_for(d, thing)
|
arch = arch_for(d, thing)
|
||||||
sys = sys_for(d, thing)
|
sys = sys_for(d, thing)
|
||||||
prefix = prefix_for(d, thing)
|
prefix = prefix_for(d, thing)
|
||||||
@@ -208,42 +252,55 @@ def rust_gen_target(d, thing, wd):
|
|||||||
features = ""
|
features = ""
|
||||||
cpu = "generic"
|
cpu = "generic"
|
||||||
if thing is "TARGET":
|
if thing is "TARGET":
|
||||||
features = d.getVar('TARGET_LLVM_FEATURES', True) or ""
|
features = d.getVar('TARGET_LLVM_FEATURES') or ""
|
||||||
cpu = d.getVar('TARGET_LLVM_CPU', True)
|
cpu = d.getVar('TARGET_LLVM_CPU')
|
||||||
features = features or d.getVarFlag('FEATURES', arch, True) or ""
|
features = features or d.getVarFlag('FEATURES', arch) or ""
|
||||||
features = features.strip()
|
features = features.strip()
|
||||||
|
|
||||||
# build tspec
|
# build tspec
|
||||||
tspec = {}
|
tspec = {}
|
||||||
tspec['llvm-target'] = d.getVarFlag('LLVM_TARGET', arch, True)
|
tspec['llvm-target'] = d.getVarFlag('LLVM_TARGET', arch)
|
||||||
tspec['data-layout'] = d.getVarFlag('DATA_LAYOUT', arch, True)
|
tspec['data-layout'] = d.getVarFlag('DATA_LAYOUT', arch)
|
||||||
tspec['target-pointer-width'] = d.getVarFlag('TARGET_POINTER_WIDTH', arch, True)
|
tspec['max-atomic-width'] = d.getVarFlag('MAX_ATOMIC_WIDTH', arch)
|
||||||
tspec['target-word-size'] = tspec['target-pointer-width']
|
tspec['target-pointer-width'] = d.getVarFlag('TARGET_POINTER_WIDTH', arch)
|
||||||
tspec['target-endian'] = d.getVarFlag('TARGET_ENDIAN', arch, True)
|
tspec['target-c-int-width'] = d.getVarFlag('TARGET_C_INT_WIDTH', arch)
|
||||||
|
tspec['target-endian'] = d.getVarFlag('TARGET_ENDIAN', arch)
|
||||||
tspec['arch'] = arch_to_rust_target_arch(arch)
|
tspec['arch'] = arch_to_rust_target_arch(arch)
|
||||||
tspec['os'] = "linux"
|
tspec['os'] = "linux"
|
||||||
tspec['env'] = "gnu"
|
if "musl" in tspec['llvm-target']:
|
||||||
tspec['linker'] = "{}{}gcc".format(d.getVar('CCACHE', True), prefix)
|
tspec['env'] = "musl"
|
||||||
tspec['objcopy'] = "{}objcopy".format(prefix)
|
else:
|
||||||
|
tspec['env'] = "gnu"
|
||||||
|
tspec['vendor'] = "unknown"
|
||||||
|
tspec['target-family'] = "unix"
|
||||||
|
tspec['linker'] = "{}{}gcc".format(d.getVar('CCACHE'), prefix)
|
||||||
tspec['ar'] = "{}ar".format(prefix)
|
tspec['ar'] = "{}ar".format(prefix)
|
||||||
tspec['cpu'] = cpu
|
tspec['cpu'] = cpu
|
||||||
if features is not "":
|
if features is not "":
|
||||||
tspec['features'] = features
|
tspec['features'] = features
|
||||||
tspec['dynamic-linking'] = True
|
tspec['dynamic-linking'] = True
|
||||||
tspec['executables'] = True
|
tspec['executables'] = True
|
||||||
tspec['morestack'] = True
|
|
||||||
tspec['linker-is-gnu'] = True
|
tspec['linker-is-gnu'] = True
|
||||||
|
tspec['linker-flavor'] = "gcc"
|
||||||
tspec['has-rpath'] = True
|
tspec['has-rpath'] = True
|
||||||
tspec['has-elf-tls'] = True
|
tspec['has-elf-tls'] = True
|
||||||
tspec['position-independent-executables'] = True
|
tspec['position-independent-executables'] = True
|
||||||
|
tspec['panic-strategy'] = d.getVar("RUST_PANIC_STRATEGY")
|
||||||
|
|
||||||
|
# Don't use jemalloc as it doesn't work for many targets.
|
||||||
|
# https://github.com/rust-lang/rust/pull/37392
|
||||||
|
# From 1.20.0 and forward, system allocator is the default.
|
||||||
|
if LooseVersion(d.getVar("PV")) < LooseVersion("1.20.0"):
|
||||||
|
tspec['exe-allocation-crate'] = "alloc_system"
|
||||||
|
tspec['lib-allocation-crate'] = "alloc_system"
|
||||||
|
|
||||||
# write out the target spec json file
|
# write out the target spec json file
|
||||||
with open(wd + sys + '.json', 'w') as f:
|
with open(wd + sys + '.json', 'w') as f:
|
||||||
json.dump(tspec, f)
|
json.dump(tspec, f, indent=4)
|
||||||
|
|
||||||
|
|
||||||
python do_rust_gen_targets () {
|
python do_rust_gen_targets () {
|
||||||
wd = d.getVar('WORKDIR', True) + '/targets/'
|
wd = d.getVar('WORKDIR') + '/targets/'
|
||||||
# It is important 'TARGET' is last here so that it overrides our less
|
# 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
|
# informed choices for BUILD & HOST if TARGET happens to be the same as
|
||||||
# either of them.
|
# either of them.
|
||||||
@@ -254,128 +311,86 @@ python do_rust_gen_targets () {
|
|||||||
addtask rust_gen_targets after do_patch before do_compile
|
addtask rust_gen_targets after do_patch before do_compile
|
||||||
do_rust_gen_targets[dirs] += "${WORKDIR}/targets"
|
do_rust_gen_targets[dirs] += "${WORKDIR}/targets"
|
||||||
|
|
||||||
def rust_gen_mk_cfg(d, thing):
|
|
||||||
''''
|
|
||||||
Rust's build system adds support for new archs via 2 things:
|
|
||||||
1. a file in mk/cfg which defines how the runtime libraries are built
|
|
||||||
2. and rustc arch definition either built into the compiler or supplied as a .json file
|
|
||||||
|
|
||||||
This generates a new #1 for the given 'thing' (one of HOST, TARGET, BUILD)
|
do_rust_setup_snapshot () {
|
||||||
using a "similar" config that rust already supplies as a template.
|
for installer in "${WORKDIR}/rust-snapshot-components/"*"/install.sh"; do
|
||||||
|
"${installer}" --prefix="${WORKDIR}/rust-snapshot" --disable-ldconfig
|
||||||
|
done
|
||||||
|
|
||||||
Note that the configure process also depends on the existence of #1, so we
|
# Some versions of rust (e.g. 1.18.0) tries to find cargo in stage0/bin/cargo
|
||||||
have to run this before do_configure
|
# and fail without it there.
|
||||||
'''
|
mkdir -p ${RUSTSRC}/build/${BUILD_SYS}
|
||||||
import os
|
ln -sf ${WORKDIR}/rust-snapshot/ ${RUSTSRC}/build/${BUILD_SYS}/stage0
|
||||||
import subprocess
|
|
||||||
|
|
||||||
rust_base_sys = rust_base_triple(d, thing)
|
|
||||||
arch = arch_for(d, thing)
|
|
||||||
sys = sys_for(d, thing)
|
|
||||||
prefix = prefix_for(d, thing)
|
|
||||||
llvm_target = d.getVarFlag('LLVM_TARGET', arch, True)
|
|
||||||
ldflags = d.getVar('LDFLAGS', True) + d.getVar('HOST_CC_ARCH', True) + d.getVar('TOOLCHAIN_OPTIONS', True)
|
|
||||||
|
|
||||||
b = os.path.join(d.getVar('S', True), 'mk', 'cfg')
|
|
||||||
o = open(os.path.join(b, sys_for(d, thing) + '.mk'), 'w')
|
|
||||||
i = open(os.path.join(b, rust_base_sys + '.mk'), 'r')
|
|
||||||
|
|
||||||
r = subprocess.call(['sed',
|
|
||||||
# CFLAGS, LDFLAGS, CXXFLAGS, CPPFLAGS are used by rust's build for a
|
|
||||||
# wide range of targets (not just HOST). Yocto's settings for them will
|
|
||||||
# be inappropriate, avoid having random targets try to use them, we'll
|
|
||||||
# add as needed.
|
|
||||||
'-e', 's/$(CFLAGS)//',
|
|
||||||
'-e', 's/$(CXXFLAGS)//',
|
|
||||||
'-e', 's/$(CPPFLAGS)//',
|
|
||||||
'-e', 's/$(LDFLAGS)//',
|
|
||||||
|
|
||||||
# update all triplets to the new one
|
|
||||||
'-e', 's/{}/{}/g'.format(rust_base_sys, sys),
|
|
||||||
|
|
||||||
# Replace tools with our own (CROSS_PREFIX is appended to all tools
|
|
||||||
# by rust's build system). We delete and then insert this because not
|
|
||||||
# all targets define it.
|
|
||||||
'-e', 's/^CROSS_PREFIX_{}.*$//'.format(sys),
|
|
||||||
'-e', '2 a CROSS_PREFIX_{} := {}'.format(sys, prefix),
|
|
||||||
'-e', 's/^CFG_LLVM_TARGET_.*$//',
|
|
||||||
'-e', '2 a CFG_LLVM_TARGET_{} := {}'.format(sys, llvm_target),
|
|
||||||
'-e', 's/^CC_{}=.*$/CC_{} := gcc/'.format(sys, sys),
|
|
||||||
'-e', 's/^CXX_{}.*$/CXX_{} := g++/'.format(sys, sys),
|
|
||||||
'-e', 's/^CPP_{}.*$/CPP_{} := gcc -E/'.format(sys, sys),
|
|
||||||
'-e', 's/^AR_{}.*$/AR_{} := ar/'.format(sys, sys),
|
|
||||||
|
|
||||||
# Some targets don't have LINK even though it is required to build.
|
|
||||||
'-e', 's/^LINK_{}.*$//'.format(sys),
|
|
||||||
'-e', '2 a LINK_{} := gcc'.format(sys),
|
|
||||||
|
|
||||||
# Append our flags to the existing ones
|
|
||||||
'-e', '/^CFG_JEMALLOC_CFLAGS/ s;$; {};'.format(cflags_for(d, thing)),
|
|
||||||
'-e', '/^CFG_GCCISH_CFLAGS/ s;$; {};'.format(cflags_for(d, thing)),
|
|
||||||
'-e', '/^CFG_GCCISH_CXXFLAGS/ s;$; {};'.format(cxxflags_for(d, thing)),
|
|
||||||
'-e', '/^CFG_GCCISH_LINK_FLAGS/ s;$; {};'.format(ldflags),
|
|
||||||
|
|
||||||
# May need to add: CFG_LLC_FLAGS_{}
|
|
||||||
], stdout=o, stdin=i)
|
|
||||||
if r:
|
|
||||||
raise Exception
|
|
||||||
o.write("OBJCOPY_{} := {}objcopy\n".format(sys, prefix))
|
|
||||||
# Note: this isn't how this variable is supposed to be used, but for
|
|
||||||
# non-msvc platforms nothing else touches it.
|
|
||||||
# These are the only extra flags passed to the rustllvm (c++ code) build.
|
|
||||||
# These are only used for host (even though we emit them for all targets)
|
|
||||||
# Without this, there are link failures due to GLIBC_CXX11_ABI issues in
|
|
||||||
# certain setups.
|
|
||||||
o.write("EXTRA_RUSTLLVM_CXXFLAGS_{} := {}\n".format(sys, cxxflags_for(d, thing)))
|
|
||||||
o.close()
|
|
||||||
i.close()
|
|
||||||
|
|
||||||
python do_rust_arch_fixup () {
|
|
||||||
for thing in ['BUILD', 'HOST', 'TARGET']:
|
|
||||||
bb.debug(1, "rust_gen_mk_cfg for " + thing)
|
|
||||||
rust_gen_mk_cfg(d, thing)
|
|
||||||
}
|
}
|
||||||
addtask rust_arch_fixup before do_configure after do_patch
|
addtask rust_setup_snapshot after do_unpack before do_configure
|
||||||
do_rust_arch_fixup[dirs] += "${S}/mk/cfg"
|
do_rust_setup_snapshot[dirs] += "${WORKDIR}/rust-snapshot"
|
||||||
|
|
||||||
# prevent the rust-installer scripts from calling ldconfig
|
|
||||||
export CFG_DISABLE_LDCONFIG="notempty"
|
|
||||||
|
|
||||||
# rust's configure doesn't recognize --disable-static, so remove it.
|
python do_configure() {
|
||||||
DISABLE_STATIC = ""
|
import json
|
||||||
|
try:
|
||||||
|
import configparser
|
||||||
|
except ImportError:
|
||||||
|
import ConfigParser as configparser
|
||||||
|
|
||||||
do_configure () {
|
# toml is rather similar to standard ini like format except it likes values
|
||||||
# FIXME: target_prefix vs prefix, see cross.bbclass
|
# that look more JSON like. So for our purposes simply escaping all values
|
||||||
|
# as JSON seem to work fine.
|
||||||
|
|
||||||
# - rpath is required otherwise rustc fails to resolve symbols
|
e = lambda s: json.dumps(s)
|
||||||
# - submodule management is done by bitbake's fetching
|
|
||||||
${S}/configure \
|
config = configparser.RawConfigParser()
|
||||||
"--enable-rpath" \
|
|
||||||
"--disable-docs" \
|
# [target.ARCH-poky-linux]
|
||||||
"--disable-manage-submodules" \
|
target_section = "target.{}".format(d.getVar('TARGET_SYS', True))
|
||||||
"--disable-debug" \
|
config.add_section(target_section)
|
||||||
"--enable-optimize" \
|
|
||||||
"--enable-optimize-cxx" \
|
llvm_config = d.expand("${STAGING_DIR_NATIVE}${libdir_native}/llvm-rust/bin/llvm-config")
|
||||||
"--disable-llvm-version-check" \
|
config.set(target_section, "llvm-config", e(llvm_config))
|
||||||
"--llvm-root=${STAGING_DIR_NATIVE}/${prefix_native}" \
|
|
||||||
"--enable-optimize-tests" \
|
config.set(target_section, "cxx", e(d.expand("${RUST_TARGET_CXX}")))
|
||||||
"--release-channel=stable" \
|
config.set(target_section, "cc", e(d.expand("${RUST_TARGET_CC}")))
|
||||||
"--prefix=${prefix}" \
|
|
||||||
"--target=${TARGET_SYS}" \
|
# [rust]
|
||||||
"--host=${HOST_SYS}" \
|
config.add_section("rust")
|
||||||
"--build=${BUILD_SYS}" \
|
config.set("rust", "rpath", e(True))
|
||||||
"--localstatedir=${localstatedir}" \
|
config.set("rust", "channel", e("stable"))
|
||||||
"--sysconfdir=${sysconfdir}" \
|
|
||||||
"--datadir=${datadir}" \
|
# Don't use jemalloc as it doesn't work for many targets.
|
||||||
"--infodir=${infodir}" \
|
# https://github.com/rust-lang/rust/pull/37392
|
||||||
"--mandir=${mandir}" \
|
config.set("rust", "use-jemalloc", e(False))
|
||||||
"--libdir=${libdir}" \
|
|
||||||
"--enable-local-rust" \
|
# Whether or not to optimize the compiler and standard library
|
||||||
"--local-rust-root=${WORKDIR}/${RUST_SNAPSHOT}/rustc" \
|
config.set("rust", "optimize", e(True))
|
||||||
${EXTRA_OECONF}
|
|
||||||
|
# [build]
|
||||||
|
config.add_section("build")
|
||||||
|
config.set("build", "submodules", e(False))
|
||||||
|
config.set("build", "docs", e(False))
|
||||||
|
|
||||||
|
rustc = d.expand("${WORKDIR}/rust-snapshot/bin/rustc")
|
||||||
|
config.set("build", "rustc", e(rustc))
|
||||||
|
|
||||||
|
cargo = d.expand("${WORKDIR}/rust-snapshot/bin/cargo")
|
||||||
|
config.set("build", "cargo", e(cargo))
|
||||||
|
|
||||||
|
targets = [d.getVar("TARGET_SYS", True)]
|
||||||
|
config.set("build", "target", e(targets))
|
||||||
|
|
||||||
|
hosts = [d.getVar("HOST_SYS", True)]
|
||||||
|
config.set("build", "host", e(targets))
|
||||||
|
|
||||||
|
config.set("build", "build", e(d.getVar("BUILD_SYS", True)))
|
||||||
|
|
||||||
|
with open("config.toml", "w") as f:
|
||||||
|
config.write(f)
|
||||||
|
|
||||||
|
# set up ${WORKDIR}/cargo_home
|
||||||
|
bb.build.exec_func("setup_cargo_environment", d)
|
||||||
}
|
}
|
||||||
|
|
||||||
rust_runmake () {
|
|
||||||
|
rust_runx () {
|
||||||
echo "COMPILE ${PN}" "$@"
|
echo "COMPILE ${PN}" "$@"
|
||||||
|
|
||||||
# CFLAGS, LDFLAGS, CXXFLAGS, CPPFLAGS are used by rust's build for a
|
# CFLAGS, LDFLAGS, CXXFLAGS, CPPFLAGS are used by rust's build for a
|
||||||
@@ -386,15 +401,27 @@ rust_runmake () {
|
|||||||
unset CXXFLAGS
|
unset CXXFLAGS
|
||||||
unset CPPFLAGS
|
unset CPPFLAGS
|
||||||
|
|
||||||
oe_runmake "VERBOSE=1" "$@"
|
oe_cargo_fix_env
|
||||||
|
|
||||||
|
python src/bootstrap/bootstrap.py "$@" --verbose
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
do_compile () {
|
do_compile () {
|
||||||
rust_runmake
|
rust_runx build
|
||||||
}
|
}
|
||||||
|
|
||||||
rust_do_install () {
|
|
||||||
rust_runmake DESTDIR="${D}" install
|
rust_do_dist_install () {
|
||||||
|
rust_runx dist
|
||||||
|
|
||||||
|
for installer in "build/tmp/dist/rustc"*"/install.sh"; do
|
||||||
|
"${installer}" --destdir="${D}" --prefix="${prefix}" --disable-ldconfig
|
||||||
|
done
|
||||||
|
|
||||||
|
for installer in "build/tmp/dist/rust-std"*"/install.sh"; do
|
||||||
|
"${installer}" --destdir="${D}" --prefix="${prefix}" --disable-ldconfig
|
||||||
|
done
|
||||||
|
|
||||||
# Install our custom target.json files
|
# Install our custom target.json files
|
||||||
local td="${D}${libdir}/rustlib/"
|
local td="${D}${libdir}/rustlib/"
|
||||||
@@ -403,10 +430,6 @@ rust_do_install () {
|
|||||||
install -m 0644 "$tgt" "$td"
|
install -m 0644 "$tgt" "$td"
|
||||||
done
|
done
|
||||||
|
|
||||||
# Remove any files directly installed into libdir to avoid
|
|
||||||
# conflicts between cross and native
|
|
||||||
rm -f ${D}${libdir}/lib*.so
|
|
||||||
|
|
||||||
# cleanup after rust-installer since we don't need these bits
|
# cleanup after rust-installer since we don't need these bits
|
||||||
rm ${D}/${libdir}/rustlib/install.log
|
rm ${D}/${libdir}/rustlib/install.log
|
||||||
rm ${D}/${libdir}/rustlib/rust-installer-version
|
rm ${D}/${libdir}/rustlib/rust-installer-version
|
||||||
@@ -414,7 +437,8 @@ rust_do_install () {
|
|||||||
rm ${D}/${libdir}/rustlib/components
|
rm ${D}/${libdir}/rustlib/components
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
do_install () {
|
do_install () {
|
||||||
rust_do_install
|
rust_do_dist_install
|
||||||
}
|
}
|
||||||
# ex: sts=4 et sw=4 ts=8
|
# ex: sts=4 et sw=4 ts=8
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
require rust.inc
|
|
||||||
require rust-source-${PV}.inc
|
|
||||||
|
|
||||||
# overriden due to difference between 1.10.0 and 1.12.1
|
|
||||||
DATA_LAYOUT[aarch64] = "e-m:e-i64:64-i128:128-n32:64-S128"
|
|
||||||
|
|
||||||
SRC_URI += " \
|
|
||||||
file://rust-${PV}/0001-Add-config-for-musl-based-arm-builds.patch \
|
|
||||||
file://rust-${PV}/0002-Target-add-default-target.json-path-libdir-rust-targ.patch \
|
|
||||||
file://rust-${PV}/0003-mk-for-stage0-use-RUSTFLAGS-to-override-target-libs-.patch \
|
|
||||||
file://rust-${PV}/0004-mk-add-missing-CFG_LIBDIR_RELATIVE.patch \
|
|
||||||
file://rust-${PV}/0006-std-thread_local-workaround-for-NULL-__dso_handle.patch \
|
|
||||||
file://rust-${PV}/0007-mk-install-use-disable-rewrite-paths.patch \
|
|
||||||
file://rust-${PV}/0008-Allow-overriding-crate_hash-with-C-crate_hash.patch \
|
|
||||||
file://rust-${PV}/0009-mk-platform.mk-pass-C-crate_hash-to-builds.patch \
|
|
||||||
file://rust-${PV}/0011-Get-rid-of-the-.note-interpretation-of-rustc-dylib-m.patch \
|
|
||||||
file://rust-installer-${PV}/0001-add-option-to-disable-rewriting-of-install-paths.patch;patchdir=src/rust-installer \
|
|
||||||
"
|
|
||||||
|
|
||||||
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,27 +0,0 @@
|
|||||||
require rust.inc
|
|
||||||
require rust-source-${PV}.inc
|
|
||||||
|
|
||||||
# the configure script always requires cmake so despite
|
|
||||||
# rust not needing this (only rust-llvm needs it) we must
|
|
||||||
# have it for the configure script to succeed.
|
|
||||||
DEPENDS += "cmake-native"
|
|
||||||
|
|
||||||
SRC_URI += " \
|
|
||||||
file://rust-${PV}/0001-Target-add-default-target.json-path-libdir-rust-targ.patch \
|
|
||||||
file://rust-${PV}/0002-mk-for-stage0-use-RUSTFLAGS-to-override-target-libs-.patch \
|
|
||||||
file://rust-${PV}/0003-mk-add-missing-CFG_LIBDIR_RELATIVE.patch \
|
|
||||||
file://rust-${PV}/0005-std-thread_local-workaround-for-NULL-__dso_handle.patch \
|
|
||||||
file://rust-${PV}/0006-mk-install-use-disable-rewrite-paths.patch \
|
|
||||||
file://rust-${PV}/0007-Allow-overriding-crate_hash-with-C-crate_hash.patch \
|
|
||||||
file://rust-${PV}/0008-mk-platform.mk-pass-C-crate_hash-to-builds.patch \
|
|
||||||
file://rust-installer-${PV}/0001-add-option-to-disable-rewriting-of-install-paths.patch;patchdir=src/rust-installer \
|
|
||||||
"
|
|
||||||
|
|
||||||
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"
|
|
||||||
@@ -0,0 +1,215 @@
|
|||||||
|
require rust.inc
|
||||||
|
require rust-source-${PV}.inc
|
||||||
|
require rust-snapshot-${PV}.inc
|
||||||
|
|
||||||
|
# These are extracted from rustc/src/bootstrap/Cargo.toml via cargo-bitbake
|
||||||
|
SRC_URI += " \
|
||||||
|
crate://crates.io/aho-corasick/0.6.4 \
|
||||||
|
crate://crates.io/ansi_term/0.11.0 \
|
||||||
|
crate://crates.io/ar/0.3.1 \
|
||||||
|
crate://crates.io/arrayvec/0.4.7 \
|
||||||
|
crate://crates.io/atty/0.2.8 \
|
||||||
|
crate://crates.io/backtrace-sys/0.1.16 \
|
||||||
|
crate://crates.io/backtrace/0.3.5 \
|
||||||
|
crate://crates.io/bitflags/0.7.0 \
|
||||||
|
crate://crates.io/bitflags/0.9.1 \
|
||||||
|
crate://crates.io/bitflags/1.0.1 \
|
||||||
|
crate://crates.io/bufstream/0.1.3 \
|
||||||
|
crate://crates.io/byteorder/1.2.1 \
|
||||||
|
crate://crates.io/cargo_metadata/0.2.3 \
|
||||||
|
crate://crates.io/cargo_metadata/0.5.3 \
|
||||||
|
crate://crates.io/cc/1.0.9 \
|
||||||
|
crate://crates.io/cfg-if/0.1.2 \
|
||||||
|
crate://crates.io/chrono/0.4.0 \
|
||||||
|
crate://crates.io/clap/2.31.2 \
|
||||||
|
crate://crates.io/cmake/0.1.29 \
|
||||||
|
crate://crates.io/commoncrypto-sys/0.2.0 \
|
||||||
|
crate://crates.io/commoncrypto/0.2.0 \
|
||||||
|
crate://crates.io/compiletest_rs/0.3.8 \
|
||||||
|
crate://crates.io/core-foundation-sys/0.5.1 \
|
||||||
|
crate://crates.io/core-foundation/0.5.1 \
|
||||||
|
crate://crates.io/crossbeam-deque/0.2.0 \
|
||||||
|
crate://crates.io/crossbeam-epoch/0.3.0 \
|
||||||
|
crate://crates.io/crossbeam-utils/0.2.2 \
|
||||||
|
crate://crates.io/crossbeam/0.3.2 \
|
||||||
|
crate://crates.io/crypto-hash/0.3.1 \
|
||||||
|
crate://crates.io/curl-sys/0.4.1 \
|
||||||
|
crate://crates.io/curl/0.4.11 \
|
||||||
|
crate://crates.io/derive-new/0.5.1 \
|
||||||
|
crate://crates.io/diff/0.1.11 \
|
||||||
|
crate://crates.io/dtoa/0.4.2 \
|
||||||
|
crate://crates.io/either/1.4.0 \
|
||||||
|
crate://crates.io/ena/0.9.2 \
|
||||||
|
crate://crates.io/endian-type/0.1.2 \
|
||||||
|
crate://crates.io/enum_primitive/0.1.1 \
|
||||||
|
crate://crates.io/env_logger/0.5.6 \
|
||||||
|
crate://crates.io/error-chain/0.11.0 \
|
||||||
|
crate://crates.io/failure/0.1.1 \
|
||||||
|
crate://crates.io/failure_derive/0.1.1 \
|
||||||
|
crate://crates.io/filetime/0.1.15 \
|
||||||
|
crate://crates.io/flate2/1.0.1 \
|
||||||
|
crate://crates.io/fnv/1.0.6 \
|
||||||
|
crate://crates.io/foreign-types-shared/0.1.1 \
|
||||||
|
crate://crates.io/foreign-types/0.3.2 \
|
||||||
|
crate://crates.io/fs2/0.4.3 \
|
||||||
|
crate://crates.io/fuchsia-zircon-sys/0.3.3 \
|
||||||
|
crate://crates.io/fuchsia-zircon/0.3.3 \
|
||||||
|
crate://crates.io/futures/0.1.17 \
|
||||||
|
crate://crates.io/getopts/0.2.15 \
|
||||||
|
crate://crates.io/git2-curl/0.8.1 \
|
||||||
|
crate://crates.io/git2/0.7.1 \
|
||||||
|
crate://crates.io/glob/0.2.11 \
|
||||||
|
crate://crates.io/globset/0.3.0 \
|
||||||
|
crate://crates.io/handlebars/0.29.1 \
|
||||||
|
crate://crates.io/hex/0.3.1 \
|
||||||
|
crate://crates.io/home/0.3.2 \
|
||||||
|
crate://crates.io/humantime/1.1.1 \
|
||||||
|
crate://crates.io/idna/0.1.4 \
|
||||||
|
crate://crates.io/if_chain/0.1.2 \
|
||||||
|
crate://crates.io/ignore/0.4.1 \
|
||||||
|
crate://crates.io/is-match/0.1.0 \
|
||||||
|
crate://crates.io/itertools/0.7.6 \
|
||||||
|
crate://crates.io/itoa/0.4.1 \
|
||||||
|
crate://crates.io/jobserver/0.1.11 \
|
||||||
|
crate://crates.io/json/0.11.12 \
|
||||||
|
crate://crates.io/jsonrpc-core/8.0.1 \
|
||||||
|
crate://crates.io/kernel32-sys/0.2.2 \
|
||||||
|
crate://crates.io/languageserver-types/0.35.0 \
|
||||||
|
crate://crates.io/lazy_static/0.2.11 \
|
||||||
|
crate://crates.io/lazy_static/1.0.0 \
|
||||||
|
crate://crates.io/lazycell/0.6.0 \
|
||||||
|
crate://crates.io/libc/0.2.40 \
|
||||||
|
crate://crates.io/libgit2-sys/0.7.1 \
|
||||||
|
crate://crates.io/libssh2-sys/0.2.6 \
|
||||||
|
crate://crates.io/libz-sys/1.0.18 \
|
||||||
|
crate://crates.io/log/0.3.9 \
|
||||||
|
crate://crates.io/log/0.4.1 \
|
||||||
|
crate://crates.io/log_settings/0.1.1 \
|
||||||
|
crate://crates.io/lzma-sys/0.1.9 \
|
||||||
|
crate://crates.io/matches/0.1.6 \
|
||||||
|
crate://crates.io/mdbook/0.1.2 \
|
||||||
|
crate://crates.io/memchr/2.0.1 \
|
||||||
|
crate://crates.io/memoffset/0.2.1 \
|
||||||
|
crate://crates.io/miniz-sys/0.1.10 \
|
||||||
|
crate://crates.io/miow/0.3.1 \
|
||||||
|
crate://crates.io/nibble_vec/0.0.3 \
|
||||||
|
crate://crates.io/nodrop/0.1.12 \
|
||||||
|
crate://crates.io/num-integer/0.1.36 \
|
||||||
|
crate://crates.io/num-iter/0.1.35 \
|
||||||
|
crate://crates.io/num-traits/0.1.43 \
|
||||||
|
crate://crates.io/num-traits/0.2.2 \
|
||||||
|
crate://crates.io/num/0.1.42 \
|
||||||
|
crate://crates.io/num_cpus/1.8.0 \
|
||||||
|
crate://crates.io/open/1.2.1 \
|
||||||
|
crate://crates.io/openssl-probe/0.1.2 \
|
||||||
|
crate://crates.io/openssl-sys/0.9.27 \
|
||||||
|
crate://crates.io/openssl/0.10.5 \
|
||||||
|
crate://crates.io/owning_ref/0.3.3 \
|
||||||
|
crate://crates.io/parking_lot/0.5.3 \
|
||||||
|
crate://crates.io/parking_lot_core/0.2.13 \
|
||||||
|
crate://crates.io/percent-encoding/1.0.1 \
|
||||||
|
crate://crates.io/pest/0.3.3 \
|
||||||
|
crate://crates.io/pkg-config/0.3.9 \
|
||||||
|
crate://crates.io/proc-macro2/0.2.3 \
|
||||||
|
crate://crates.io/pulldown-cmark/0.1.2 \
|
||||||
|
crate://crates.io/quick-error/1.2.1 \
|
||||||
|
crate://crates.io/quine-mc_cluskey/0.2.4 \
|
||||||
|
crate://crates.io/quote/0.3.15 \
|
||||||
|
crate://crates.io/quote/0.4.2 \
|
||||||
|
crate://crates.io/racer/2.0.13 \
|
||||||
|
crate://crates.io/radix_trie/0.1.2 \
|
||||||
|
crate://crates.io/rand/0.4.2 \
|
||||||
|
crate://crates.io/rayon-core/1.4.0 \
|
||||||
|
crate://crates.io/rayon/1.0.0 \
|
||||||
|
crate://crates.io/redox_syscall/0.1.37 \
|
||||||
|
crate://crates.io/redox_termios/0.1.1 \
|
||||||
|
crate://crates.io/regex-syntax/0.5.3 \
|
||||||
|
crate://crates.io/regex/0.2.10 \
|
||||||
|
crate://crates.io/remove_dir_all/0.5.0 \
|
||||||
|
crate://crates.io/rls-analysis/0.11.3 \
|
||||||
|
crate://crates.io/rls-blacklist/0.1.0 \
|
||||||
|
crate://crates.io/rls-data/0.15.0 \
|
||||||
|
crate://crates.io/rls-rustc/0.2.2 \
|
||||||
|
crate://crates.io/rls-span/0.4.0 \
|
||||||
|
crate://crates.io/rls-vfs/0.4.5 \
|
||||||
|
crate://crates.io/rustc-ap-rustc_cratesio_shim/94.0.0 \
|
||||||
|
crate://crates.io/rustc-ap-rustc_data_structures/94.0.0 \
|
||||||
|
crate://crates.io/rustc-ap-rustc_errors/94.0.0 \
|
||||||
|
crate://crates.io/rustc-ap-serialize/94.0.0 \
|
||||||
|
crate://crates.io/rustc-ap-syntax/94.0.0 \
|
||||||
|
crate://crates.io/rustc-ap-syntax_pos/94.0.0 \
|
||||||
|
crate://crates.io/rustc-demangle/0.1.7 \
|
||||||
|
crate://crates.io/rustc-serialize/0.3.24 \
|
||||||
|
crate://crates.io/same-file/1.0.2 \
|
||||||
|
crate://crates.io/schannel/0.1.11 \
|
||||||
|
crate://crates.io/scoped-tls/0.1.1 \
|
||||||
|
crate://crates.io/scopeguard/0.3.3 \
|
||||||
|
crate://crates.io/semver-parser/0.7.0 \
|
||||||
|
crate://crates.io/semver/0.9.0 \
|
||||||
|
crate://crates.io/serde/1.0.35 \
|
||||||
|
crate://crates.io/serde_derive/1.0.35 \
|
||||||
|
crate://crates.io/serde_derive_internals/0.22.1 \
|
||||||
|
crate://crates.io/serde_ignored/0.0.4 \
|
||||||
|
crate://crates.io/serde_json/1.0.13 \
|
||||||
|
crate://crates.io/shell-escape/0.1.3 \
|
||||||
|
crate://crates.io/shlex/0.1.1 \
|
||||||
|
crate://crates.io/smallvec/0.6.0 \
|
||||||
|
crate://crates.io/socket2/0.3.4 \
|
||||||
|
crate://crates.io/stable_deref_trait/1.0.0 \
|
||||||
|
crate://crates.io/strsim/0.7.0 \
|
||||||
|
crate://crates.io/syn/0.11.11 \
|
||||||
|
crate://crates.io/syn/0.12.14 \
|
||||||
|
crate://crates.io/synom/0.11.3 \
|
||||||
|
crate://crates.io/synstructure/0.6.1 \
|
||||||
|
crate://crates.io/syntex_errors/0.52.0 \
|
||||||
|
crate://crates.io/syntex_pos/0.52.0 \
|
||||||
|
crate://crates.io/syntex_syntax/0.52.0 \
|
||||||
|
crate://crates.io/tar/0.4.14 \
|
||||||
|
crate://crates.io/tempdir/0.3.7 \
|
||||||
|
crate://crates.io/tempfile/3.0.2 \
|
||||||
|
crate://crates.io/term/0.4.6 \
|
||||||
|
crate://crates.io/term/0.5.1 \
|
||||||
|
crate://crates.io/termcolor/0.3.6 \
|
||||||
|
crate://crates.io/termion/1.5.1 \
|
||||||
|
crate://crates.io/textwrap/0.9.0 \
|
||||||
|
crate://crates.io/thread_local/0.3.5 \
|
||||||
|
crate://crates.io/time/0.1.39 \
|
||||||
|
crate://crates.io/toml-query/0.6.0 \
|
||||||
|
crate://crates.io/toml/0.2.1 \
|
||||||
|
crate://crates.io/toml/0.4.5 \
|
||||||
|
crate://crates.io/ucd-util/0.1.1 \
|
||||||
|
crate://crates.io/unicode-bidi/0.3.4 \
|
||||||
|
crate://crates.io/unicode-normalization/0.1.5 \
|
||||||
|
crate://crates.io/unicode-segmentation/1.2.0 \
|
||||||
|
crate://crates.io/unicode-width/0.1.4 \
|
||||||
|
crate://crates.io/unicode-xid/0.0.3 \
|
||||||
|
crate://crates.io/unicode-xid/0.0.4 \
|
||||||
|
crate://crates.io/unicode-xid/0.1.0 \
|
||||||
|
crate://crates.io/unreachable/1.0.0 \
|
||||||
|
crate://crates.io/url/1.7.0 \
|
||||||
|
crate://crates.io/url_serde/0.2.0 \
|
||||||
|
crate://crates.io/userenv-sys/0.2.0 \
|
||||||
|
crate://crates.io/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/2.1.4 \
|
||||||
|
crate://crates.io/winapi-build/0.1.1 \
|
||||||
|
crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
|
||||||
|
crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
|
||||||
|
crate://crates.io/winapi/0.2.8 \
|
||||||
|
crate://crates.io/winapi/0.3.4 \
|
||||||
|
crate://crates.io/wincolor/0.1.6 \
|
||||||
|
crate://crates.io/xattr/0.1.11 \
|
||||||
|
crate://crates.io/xz2/0.1.4 \
|
||||||
|
crate://crates.io/yaml-rust/0.3.5 \
|
||||||
|
"
|
||||||
|
|
||||||
|
DEPENDS += "rust-llvm (=${PV})"
|
||||||
|
|
||||||
|
# Otherwise we'll depend on what we provide
|
||||||
|
INHIBIT_DEFAULT_RUST_DEPS_class-native = "1"
|
||||||
|
# We don't need to depend on gcc-native because yocto assumes it exists
|
||||||
|
PROVIDES_class-native = "virtual/${TARGET_PREFIX}rust"
|
||||||
|
|
||||||
|
BBCLASSEXTEND = "native"
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
inherit cargo
|
|
||||||
|
|
||||||
CARGO_INDEX_COMMIT = "3b3994e099281c394a6a66604d1af6c0920e4c31"
|
|
||||||
|
|
||||||
SRC_URI = " \
|
|
||||||
crate://crates.io/aho-corasick/0.5.1 \
|
|
||||||
crate://crates.io/bitflags/0.5.0 \
|
|
||||||
crate://crates.io/diff/0.1.9 \
|
|
||||||
crate://crates.io/env_logger/0.3.2 \
|
|
||||||
crate://crates.io/getopts/0.2.14 \
|
|
||||||
crate://crates.io/kernel32-sys/0.2.1 \
|
|
||||||
crate://crates.io/libc/0.2.8 \
|
|
||||||
crate://crates.io/log/0.3.5 \
|
|
||||||
crate://crates.io/memchr/0.1.10 \
|
|
||||||
crate://crates.io/regex/0.1.58 \
|
|
||||||
crate://crates.io/regex-syntax/0.3.0 \
|
|
||||||
crate://crates.io/rustc-serialize/0.3.18 \
|
|
||||||
crate://crates.io/strings/0.0.1 \
|
|
||||||
crate://crates.io/syntex_syntax/0.30.0 \
|
|
||||||
crate://crates.io/term/0.2.14 \
|
|
||||||
crate://crates.io/toml/0.1.28 \
|
|
||||||
crate://crates.io/unicode-segmentation/0.1.2 \
|
|
||||||
crate://crates.io/unicode-xid/0.0.3 \
|
|
||||||
crate://crates.io/utf8-ranges/0.1.3 \
|
|
||||||
crate://crates.io/winapi/0.2.6 \
|
|
||||||
crate://crates.io/winapi-build/0.1.1 \
|
|
||||||
crate://crates.io/rustfmt/0.4.0 \
|
|
||||||
crate-index://crates.io/${CARGO_INDEX_COMMIT} \
|
|
||||||
"
|
|
||||||
SRC_URI[md5sum] = "7fc46357c9c5e72a3a1ec3630c8c7a05"
|
|
||||||
SRC_URI[sha256sum] = "770c66dc845424a0c9a7f51b47d8de1e2605298da9b257ddde1d5be6fe01331f"
|
|
||||||
SRC_URI[index.md5sum] = "79f10f436dbf26737cc80445746f16b4"
|
|
||||||
SRC_URI[index.sha256sum] = "86114b93f1f51aaf0aec3af0751d214b351f4ff9839ba031315c1b19dcbb1913"
|
|
||||||
|
|
||||||
# rustfmt 0.5.0
|
|
||||||
#LIC_FILES_CHKSUM=" \
|
|
||||||
# file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
|
||||||
# file://LICENSE-MIT;md5=0b29d505d9225d1f0815cbdcf602b901 \
|
|
||||||
#"
|
|
||||||
LIC_FILES_CHKSUM="file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
|
|
||||||
|
|
||||||
SUMMARY = "Format Rust Code"
|
|
||||||
HOMEPAGE = "https://github.com/rust-lang-nursery/rustfmt"
|
|
||||||
LICENSE = "MIT | Apache-2.0"
|
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
# 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
|
||||||
@@ -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
|
|
||||||
}
|
|
||||||
@@ -1,8 +1,14 @@
|
|||||||
#!/bin/bash -e
|
#!/bin/bash -x
|
||||||
|
|
||||||
|
sudo fuser -m `pwd`/build
|
||||||
|
|
||||||
# Only attempt to unmount if the directory is already mounted
|
# Only attempt to unmount if the directory is already mounted
|
||||||
if mountpoint -q `pwd`/build; then
|
if mountpoint -q `pwd`/build; then
|
||||||
sudo umount build
|
sudo umount `pwd`/build
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
sudo fuser -m `pwd`/build
|
||||||
|
|
||||||
|
ps -ef
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user