Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bedc4ad57c | ||
|
|
a506df4ba4 | ||
|
|
067e5a7ffd | ||
|
|
ef7228d76c | ||
|
|
2879fc131d | ||
|
|
2c923bbd20 | ||
|
|
fcbebdf58f | ||
|
|
004d871505 | ||
|
|
b454d74256 | ||
|
|
270248fa9a | ||
|
|
fe4131352d | ||
|
|
c7f56766dc | ||
|
|
ef23c8f84b | ||
|
|
c049bde288 | ||
|
|
985069709c | ||
|
|
02b0de534d | ||
|
|
9dc57a12be | ||
|
|
ba25ff4945 | ||
|
|
6504a5747f | ||
|
|
3605be79d0 | ||
|
|
8290aafe54 | ||
|
|
565a332b3f | ||
|
|
5975292b62 |
48
.github/workflows/main.yml
vendored
48
.github/workflows/main.yml
vendored
@@ -1,48 +0,0 @@
|
||||
on: [pull_request]
|
||||
jobs:
|
||||
build:
|
||||
env:
|
||||
YOCTO_VERSION: 3.2.3
|
||||
YOCTO_BRANCH: gatesgarth
|
||||
runs-on: self-hosted
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
path: 'meta-rust'
|
||||
- name: Fetch poky
|
||||
run: |
|
||||
mv poky/build/sstate-cache . || true
|
||||
rm -rf poky meta-openembedded
|
||||
git clone -b yocto-$YOCTO_VERSION --single-branch git://git.yoctoproject.org/poky
|
||||
git clone -b $YOCTO_BRANCH --single-branch git://git.openembedded.org/meta-openembedded
|
||||
- name: Configure build
|
||||
run: |
|
||||
cd poky
|
||||
. oe-init-build-env
|
||||
mv ../../sstate-cache . || true
|
||||
bitbake-layers add-layer ../../meta-openembedded/meta-oe
|
||||
bitbake-layers add-layer ../../meta-rust
|
||||
echo 'PARALLEL_MAKE_pn-rust-llvm-native = "-j2"' >> conf/local.conf
|
||||
echo 'TOOLCHAIN_HOST_TASK_append = " packagegroup-rust-cross-canadian-${MACHINE}"' >> conf/local.conf
|
||||
echo "SSTATE_MIRRORS = \"file://.* http://sstate.yoctoproject.org/$YOCTO_VERSION/PATH;downloadfilename=PATH \\n\"" >> conf/local.conf
|
||||
echo 'PREFERRED_PROVIDER_virtual/kernel = "linux-dummy"' >> conf/local.conf
|
||||
- name: Run bitbake
|
||||
run: |
|
||||
cd poky
|
||||
. oe-init-build-env
|
||||
bitbake rust-hello-world
|
||||
- name: Test SDK
|
||||
run: |
|
||||
SDK_DIR=$PWD/sdk-test
|
||||
cd poky
|
||||
. oe-init-build-env
|
||||
bitbake core-image-minimal -c populate_sdk
|
||||
rm -rf $SDK_DIR
|
||||
./$(find ./tmp/deploy/sdk/ -name '*.sh') -d $SDK_DIR -y
|
||||
. $(find $SDK_DIR -name 'environment-setup-*')
|
||||
PROG=hello
|
||||
rm -rf $PROG
|
||||
cargo new $PROG
|
||||
cd $PROG
|
||||
cargo build
|
||||
file $(find ./target -name $PROG)
|
||||
7
Jenkinsfile
vendored
7
Jenkinsfile
vendored
@@ -1,4 +1,4 @@
|
||||
def targets = [ 'qemux86', 'qemux86-64', 'qemuarm', 'qemuarm64', 'qemumips' ]
|
||||
def targets = [ 'qemux86', 'qemux86-64', 'qemuarm', 'qemuarm64' ]
|
||||
|
||||
def machine_builds = [:]
|
||||
|
||||
@@ -15,7 +15,7 @@ for (int i = 0; i < targets.size(); i++) {
|
||||
sh "./scripts/setup-env.sh"
|
||||
}
|
||||
stage("fetch $machine") {
|
||||
sh "GIT_LOCAL_REF_DIR=/srv/git-cache/ ./scripts/fetch.sh master"
|
||||
sh "GIT_LOCAL_REF_DIR=/srv/git-cache/ ./scripts/fetch.sh krogoth"
|
||||
}
|
||||
stage("build $machine") {
|
||||
sh "MACHINE=${machine} ./scripts/build.sh"
|
||||
@@ -24,9 +24,6 @@ for (int i = 0; i < targets.size(); i++) {
|
||||
echo "Caught: ${e}"
|
||||
throw e
|
||||
} finally {
|
||||
stage("push build cache $machine") {
|
||||
sh "./scripts/publish-build-cache.sh master"
|
||||
}
|
||||
stage("cleanup $machine") {
|
||||
sh "./scripts/cleanup-env.sh"
|
||||
deleteDir()
|
||||
|
||||
@@ -13,13 +13,12 @@ This OpenEmbedded layer provides the rust compiler, tools for building packages
|
||||
## What doesn't:
|
||||
|
||||
- Using anything but x86_64 as the build environment
|
||||
- rust (built for target) [issue #81](https://github.com/meta-rust/meta-rust/issues/81)
|
||||
- rust (built for target) issue #81
|
||||
|
||||
## What's untested:
|
||||
|
||||
- cargo (built for target)
|
||||
|
||||
|
||||
## Building a rust package
|
||||
|
||||
When building a rust package in bitbake, it's usually easiest to build with
|
||||
@@ -28,7 +27,7 @@ rust packages do), then it's especially easy. Otherwise you should probably
|
||||
get the code building in cargo first.
|
||||
|
||||
Once your package builds in cargo, you can use
|
||||
[cargo-bitbake](https://github.com/meta-rust/cargo-bitbake) to generate a bitbake
|
||||
[cargo-bitbake](https://github.com/cardoe/cargo-bitbake) to generate a bitbake
|
||||
recipe for it. This allows bitbake to fetch all the necessary dependent
|
||||
crates, as well as a pegged version of the crates.io index, to ensure maximum
|
||||
reproducibility.
|
||||
@@ -40,7 +39,7 @@ contained within it
|
||||
|
||||
## Pitfalls
|
||||
|
||||
- TARGET_SYS _must_ be different from BUILD_SYS. This is due to the way Rust configuration options are tracked for different targets. This is the reason we use the Yocto triples instead of the native Rust triples. See [rust-lang/cargo#3349](https://github.com/rust-lang/cargo/issues/3349).
|
||||
- TARGET_SYS _must_ be different from BUILD_SYS. This is due to the way Rust configuration options are tracked for different targets. This is the reason we use the Yocto triples instead of the native Rust triples. See rust-lang/cargo#3349.
|
||||
|
||||
## Dependencies
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
##
|
||||
## Purpose:
|
||||
## This class is used by any recipes that are built using
|
||||
## Cargo.
|
||||
|
||||
inherit cargo_common
|
||||
# add crate fetch support
|
||||
inherit crate-fetch
|
||||
inherit rust-common
|
||||
|
||||
# the binary we will use
|
||||
CARGO = "cargo"
|
||||
|
||||
# Where we download our registry and dependencies to
|
||||
export CARGO_HOME = "${WORKDIR}/cargo_home"
|
||||
|
||||
# We need cargo to compile for the target
|
||||
BASEDEPENDS_append = " cargo-native"
|
||||
|
||||
@@ -15,39 +15,78 @@ BASEDEPENDS_append = " cargo-native"
|
||||
DEPENDS_append_class-target = " virtual/${TARGET_PREFIX}rust ${RUSTLIB_DEP}"
|
||||
DEPENDS_append_class-native = " rust-native"
|
||||
|
||||
# Enable build separation
|
||||
B = "${WORKDIR}/build"
|
||||
# Cargo only supports in-tree builds at the moment
|
||||
B = "${S}"
|
||||
|
||||
# In case something fails in the build process, give a bit more feedback on
|
||||
# where the issue occured
|
||||
export RUST_BACKTRACE = "1"
|
||||
|
||||
# The directory of the Cargo.toml relative to the root directory, per default
|
||||
# assume there's a Cargo.toml directly in the root directory
|
||||
CARGO_SRC_DIR ??= ""
|
||||
# The 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"
|
||||
|
||||
# The actual path to the Cargo.toml
|
||||
MANIFEST_PATH ??= "${S}/${CARGO_SRC_DIR}/Cargo.toml"
|
||||
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 ??= ""
|
||||
BUILD_MODE = "${@['--release', ''][d.getVar('DEBUG_BUILD') == '1']}"
|
||||
CARGO_BUILD_FLAGS = "-v --target ${HOST_SYS} ${BUILD_MODE} --manifest-path=${MANIFEST_PATH}"
|
||||
CARGO_BUILD_FLAGS = "-v --target ${HOST_SYS} --release"
|
||||
|
||||
# This is based on the content of CARGO_BUILD_FLAGS and generally will need to
|
||||
# change if CARGO_BUILD_FLAGS changes.
|
||||
BUILD_DIR = "${@['release', 'debug'][d.getVar('DEBUG_BUILD') == '1']}"
|
||||
CARGO_TARGET_SUBDIR="${HOST_SYS}/${BUILD_DIR}"
|
||||
CARGO_TARGET_SUBDIR="${HOST_SYS}/release"
|
||||
oe_cargo_build () {
|
||||
export RUSTFLAGS="${RUSTFLAGS}"
|
||||
export RUST_TARGET_PATH="${RUST_TARGET_PATH}"
|
||||
bbnote "cargo = $(which ${CARGO})"
|
||||
bbnote "rustc = $(which ${RUSTC})"
|
||||
bbnote "cargo = $(which cargo)"
|
||||
bbnote "rustc = $(which rustc)"
|
||||
bbnote "${CARGO} build ${CARGO_BUILD_FLAGS} $@"
|
||||
"${CARGO}" build ${CARGO_BUILD_FLAGS} "$@"
|
||||
}
|
||||
|
||||
do_compile[progress] = "outof:\s+(\d+)/(\d+)"
|
||||
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 () {
|
||||
# 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_build
|
||||
}
|
||||
@@ -55,35 +94,19 @@ cargo_do_compile () {
|
||||
cargo_do_install () {
|
||||
local have_installed=false
|
||||
for tgt in "${B}/target/${CARGO_TARGET_SUBDIR}/"*; do
|
||||
case $tgt in
|
||||
*.so|*.rlib)
|
||||
if [[ $tgt == *.so || $tgt == *.rlib ]]; then
|
||||
install -d "${D}${rustlibdir}"
|
||||
install -m755 "$tgt" "${D}${rustlibdir}"
|
||||
have_installed=true
|
||||
;;
|
||||
*examples)
|
||||
if [ -d "$tgt" ]; then
|
||||
for example in "$tgt/"*; do
|
||||
if [ -f "$example" ] && [ -x "$example" ]; then
|
||||
install -d "${D}${bindir}"
|
||||
install -m755 "$example" "${D}${bindir}"
|
||||
have_installed=true
|
||||
fi
|
||||
done
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
if [ -f "$tgt" ] && [ -x "$tgt" ]; then
|
||||
install -d "${D}${bindir}"
|
||||
install -m755 "$tgt" "${D}${bindir}"
|
||||
have_installed=true
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
elif [ -f "$tgt" ] && [ -x "$tgt" ]; then
|
||||
install -d "${D}${bindir}"
|
||||
install -m755 "$tgt" "${D}${bindir}"
|
||||
have_installed=true
|
||||
fi
|
||||
done
|
||||
if ! $have_installed; then
|
||||
die "Did not find anything to install"
|
||||
fi
|
||||
}
|
||||
|
||||
EXPORT_FUNCTIONS do_compile do_install
|
||||
EXPORT_FUNCTIONS do_configure do_compile do_install
|
||||
|
||||
@@ -1,129 +0,0 @@
|
||||
##
|
||||
## 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"
|
||||
|
||||
# Don't instruct cargo to use crates downloaded by bitbake. Some rust packages,
|
||||
# for example the rust compiler itself, come with their own vendored sources.
|
||||
# Specifying two [source.crates-io] will not work.
|
||||
CARGO_DISABLE_BITBAKE_VENDORING ?= "0"
|
||||
|
||||
# Used by libstd-rs to point to the vendor dir included in rustc src
|
||||
CARGO_VENDORING_DIRECTORY ?= "${CARGO_HOME}/bitbake"
|
||||
|
||||
CARGO_RUST_TARGET_CCLD ?= "${RUST_TARGET_CCLD}"
|
||||
cargo_common_do_configure () {
|
||||
mkdir -p ${CARGO_HOME}/bitbake
|
||||
|
||||
cat <<- EOF > ${CARGO_HOME}/config
|
||||
# EXTRA_OECARGO_PATHS
|
||||
paths = [
|
||||
$(for p in ${EXTRA_OECARGO_PATHS}; do echo \"$p\",; done)
|
||||
]
|
||||
EOF
|
||||
|
||||
cat <<- EOF >> ${CARGO_HOME}/config
|
||||
|
||||
# Local mirror vendored by bitbake
|
||||
[source.bitbake]
|
||||
directory = "${CARGO_VENDORING_DIRECTORY}"
|
||||
EOF
|
||||
|
||||
if [ -z "${EXTERNALSRC}" ] && [ ${CARGO_DISABLE_BITBAKE_VENDORING} = "0" ]; then
|
||||
cat <<- EOF >> ${CARGO_HOME}/config
|
||||
|
||||
[source.crates-io]
|
||||
replace-with = "bitbake"
|
||||
local-registry = "/nonexistant"
|
||||
EOF
|
||||
fi
|
||||
|
||||
cat <<- EOF >> ${CARGO_HOME}/config
|
||||
|
||||
[http]
|
||||
# Multiplexing can't be enabled because http2 can't be enabled
|
||||
# in curl-native without dependency loops
|
||||
multiplexing = false
|
||||
|
||||
# Ignore the hard coded and incorrect path to certificates
|
||||
cainfo = "${STAGING_ETCDIR_NATIVE}/ssl/certs/ca-certificates.crt"
|
||||
|
||||
EOF
|
||||
|
||||
if [ -n "${http_proxy}" ]; then
|
||||
echo "proxy = \"${http_proxy}\"" >> ${CARGO_HOME}/config
|
||||
fi
|
||||
|
||||
cat <<- EOF >> ${CARGO_HOME}/config
|
||||
|
||||
# HOST_SYS
|
||||
[target.${HOST_SYS}]
|
||||
linker = "${CARGO_RUST_TARGET_CCLD}"
|
||||
EOF
|
||||
|
||||
if [ "${HOST_SYS}" != "${BUILD_SYS}" ]; then
|
||||
cat <<- EOF >> ${CARGO_HOME}/config
|
||||
|
||||
# BUILD_SYS
|
||||
[target.${BUILD_SYS}]
|
||||
linker = "${RUST_BUILD_CCLD}"
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Put build output in build directory preferred by bitbake instead of
|
||||
# inside source directory unless they are the same
|
||||
if [ "${B}" != "${S}" ]; then
|
||||
cat <<- EOF >> ${CARGO_HOME}/config
|
||||
|
||||
[build]
|
||||
# Use out of tree build destination to avoid poluting the source tree
|
||||
target-dir = "${B}/target"
|
||||
EOF
|
||||
fi
|
||||
|
||||
cat <<- EOF >> ${CARGO_HOME}/config
|
||||
|
||||
[term]
|
||||
progress.when = 'always'
|
||||
progress.width = 80
|
||||
EOF
|
||||
}
|
||||
|
||||
oe_cargo_fix_env () {
|
||||
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_CXXFLAGS="${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
|
||||
@@ -1,8 +1,10 @@
|
||||
inherit rust
|
||||
|
||||
RDEPENDS_${PN}_append_class-target = " ${RUSTLIB_DEP}"
|
||||
DEPENDS_append = " patchelf-native"
|
||||
RDEPENDS_${PN} += "${RUSTLIB_DEP}"
|
||||
|
||||
RUSTC_ARCHFLAGS += "-C opt-level=3 -g -L ${STAGING_DIR_HOST}/${rustlibdir} -C linker=${RUST_TARGET_CCLD}"
|
||||
RUSTFLAGS += "-C crate_hash=${BB_TASKHASH}"
|
||||
RUSTC_ARCHFLAGS += "-C opt-level=3 -g -L ${STAGING_DIR_HOST}/${rustlibdir}"
|
||||
EXTRA_OEMAKE += 'RUSTC_ARCHFLAGS="${RUSTC_ARCHFLAGS}"'
|
||||
|
||||
# Some libraries alias with the standard library but libstd is configured to
|
||||
@@ -15,9 +17,9 @@ OVERLAP_LIBS = "\
|
||||
rand \
|
||||
"
|
||||
def get_overlap_deps(d):
|
||||
deps = d.getVar("DEPENDS").split()
|
||||
deps = d.getVar("DEPENDS", True).split()
|
||||
overlap_deps = []
|
||||
for o in d.getVar("OVERLAP_LIBS").split():
|
||||
for o in d.getVar("OVERLAP_LIBS", True).split():
|
||||
l = len([o for dep in deps if (o + '-rs' in dep)])
|
||||
if l > 0:
|
||||
overlap_deps.append(o)
|
||||
@@ -29,51 +31,13 @@ OVERLAP_DEPS = "${@get_overlap_deps(d)}"
|
||||
RUSTC_PREFER_DYNAMIC = "-C prefer-dynamic"
|
||||
RUSTC_FLAGS += "${RUSTC_PREFER_DYNAMIC}"
|
||||
|
||||
CRATE_NAME ?= "${@d.getVar('BPN').replace('-rs', '').replace('-', '_')}"
|
||||
CRATE_NAME ?= "${@d.getVar('BPN', True).replace('-rs', '').replace('-', '_')}"
|
||||
BINNAME ?= "${BPN}"
|
||||
LIBNAME ?= "lib${CRATE_NAME}-rs"
|
||||
CRATE_TYPE ?= "dylib"
|
||||
BIN_SRC ?= "${S}/src/main.rs"
|
||||
LIB_SRC ?= "${S}/src/lib.rs"
|
||||
|
||||
rustbindest ?= "${bindir}"
|
||||
rustlibdest ?= "${rustlibdir}"
|
||||
RUST_RPATH_ABS ?= "${rustlibdir}:${rustlib}"
|
||||
|
||||
def relative_rpaths(paths, base):
|
||||
relpaths = set()
|
||||
for p in paths.split(':'):
|
||||
if p == base:
|
||||
relpaths.add('$ORIGIN')
|
||||
continue
|
||||
relpaths.add(os.path.join('$ORIGIN', os.path.relpath(p, base)))
|
||||
return '-rpath=' + ':'.join(relpaths) if len(relpaths) else ''
|
||||
|
||||
RUST_LIB_RPATH_FLAGS ?= "${@relative_rpaths(d.getVar('RUST_RPATH_ABS', True), d.getVar('rustlibdest', True))}"
|
||||
RUST_BIN_RPATH_FLAGS ?= "${@relative_rpaths(d.getVar('RUST_RPATH_ABS', True), d.getVar('rustbindest', True))}"
|
||||
|
||||
def libfilename(d):
|
||||
if d.getVar('CRATE_TYPE', True) == 'dylib':
|
||||
return d.getVar('LIBNAME', True) + '.so'
|
||||
else:
|
||||
return d.getVar('LIBNAME', True) + '.rlib'
|
||||
|
||||
def link_args(d, bin):
|
||||
linkargs = []
|
||||
if bin:
|
||||
rpaths = d.getVar('RUST_BIN_RPATH_FLAGS', False)
|
||||
else:
|
||||
rpaths = d.getVar('RUST_LIB_RPATH_FLAGS', False)
|
||||
if d.getVar('CRATE_TYPE', True) == 'dylib':
|
||||
linkargs.append('-soname')
|
||||
linkargs.append(libfilename(d))
|
||||
if len(rpaths):
|
||||
linkargs.append(rpaths)
|
||||
if len(linkargs):
|
||||
return ' '.join(['-Wl,' + arg for arg in linkargs])
|
||||
else:
|
||||
return ''
|
||||
|
||||
get_overlap_externs () {
|
||||
externs=
|
||||
for dep in ${OVERLAP_DEPS}; do
|
||||
@@ -93,22 +57,22 @@ do_configure () {
|
||||
}
|
||||
|
||||
oe_runrustc () {
|
||||
export RUST_TARGET_PATH="${RUST_TARGET_PATH}"
|
||||
bbnote ${RUSTC} ${RUSTC_ARCHFLAGS} ${RUSTC_FLAGS} "$@"
|
||||
"${RUSTC}" ${RUSTC_ARCHFLAGS} ${RUSTC_FLAGS} "$@"
|
||||
}
|
||||
|
||||
oe_compile_rust_lib () {
|
||||
[ "${CRATE_TYPE}" == "dylib" ] && suffix=so || suffix=rlib
|
||||
rm -rf ${LIBNAME}.{rlib,so}
|
||||
local -a link_args
|
||||
if [ -n '${@link_args(d, False)}' ]; then
|
||||
link_args[0]='-C'
|
||||
link_args[1]='link-args=${@link_args(d, False)}'
|
||||
if [ "${CRATE_TYPE}" == "dylib" ]; then
|
||||
link_args[0]="-C"
|
||||
link_args[1]="link-args=-Wl,-soname -Wl,${LIBNAME}.$suffix"
|
||||
fi
|
||||
oe_runrustc $(get_overlap_externs) \
|
||||
"${link_args[@]}" \
|
||||
${LIB_SRC} \
|
||||
-o ${@libfilename(d)} \
|
||||
-o ${LIBNAME}.$suffix \
|
||||
--crate-name=${CRATE_NAME} --crate-type=${CRATE_TYPE} \
|
||||
"$@"
|
||||
}
|
||||
@@ -116,27 +80,20 @@ oe_compile_rust_lib[vardeps] += "get_overlap_externs"
|
||||
|
||||
oe_compile_rust_bin () {
|
||||
rm -rf ${BINNAME}
|
||||
local -a link_args
|
||||
if [ -n '${@link_args(d, True)}' ]; then
|
||||
link_args[0]='-C'
|
||||
link_args[1]='link-args=${@link_args(d, True)}'
|
||||
fi
|
||||
oe_runrustc $(get_overlap_externs) \
|
||||
"${link_args[@]}" \
|
||||
${BIN_SRC} -o ${BINNAME} "$@"
|
||||
oe_runrustc $(get_overlap_externs) ${BIN_SRC} -o ${BINNAME} "$@"
|
||||
}
|
||||
oe_compile_rust_bin[vardeps] += "get_overlap_externs"
|
||||
|
||||
oe_install_rust_lib () {
|
||||
for lib in $(ls ${LIBNAME}.{so,rlib} 2>/dev/null); do
|
||||
echo Installing $lib
|
||||
install -D -m 755 $lib ${D}/${rustlibdest}/$lib
|
||||
install -D -m 755 $lib ${D}/${rustlibdir}/$lib
|
||||
done
|
||||
}
|
||||
|
||||
oe_install_rust_bin () {
|
||||
echo Installing ${BINNAME}
|
||||
install -D -m 755 ${BINNAME} ${D}/${rustbindest}/${BINNAME}
|
||||
install -D -m 755 ${BINNAME} ${D}/${bindir}/${BINNAME}
|
||||
}
|
||||
|
||||
do_rust_bin_fixups() {
|
||||
@@ -144,6 +101,13 @@ do_rust_bin_fixups() {
|
||||
echo "Strip rust note: $f"
|
||||
${OBJCOPY} -R .note.rustc $f $f
|
||||
done
|
||||
|
||||
for f in `find ${PKGD}`; do
|
||||
file "$f" | grep -q ELF || continue
|
||||
readelf -d "$f" | grep RUNPATH | grep -q rustlib || continue
|
||||
echo "Set rpath:" "$f"
|
||||
patchelf --set-rpath '$ORIGIN:'${rustlibdir}:${rustlib} "$f"
|
||||
done
|
||||
}
|
||||
PACKAGE_PREPROCESS_FUNCS += "do_rust_bin_fixups"
|
||||
|
||||
|
||||
@@ -1,55 +1,15 @@
|
||||
# Common variables used by all Rust builds
|
||||
export rustlibdir = "${libdir}/rust"
|
||||
FILES_${PN} += "${rustlibdir}/*.so"
|
||||
FILES_${PN}-dev += "${rustlibdir}/*.rlib ${rustlibdir}/*.rmeta"
|
||||
FILES_${PN}-dev += "${rustlibdir}/*.rlib"
|
||||
FILES_${PN}-dbg += "${rustlibdir}/.debug"
|
||||
|
||||
RUSTLIB = "-L ${STAGING_LIBDIR}/rust"
|
||||
RUST_DEBUG_REMAP = "--remap-path-prefix=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
|
||||
RUSTFLAGS += "${RUSTLIB} ${RUST_DEBUG_REMAP}"
|
||||
RUSTFLAGS += "-C rpath ${RUSTLIB}"
|
||||
RUSTLIB_DEP ?= "libstd-rs"
|
||||
RUST_TARGET_PATH = "${STAGING_LIBDIR_NATIVE}/rustlib"
|
||||
RUST_PANIC_STRATEGY ?= "unwind"
|
||||
|
||||
# Native builds are not effected by TCLIBC. Without this, rust-native
|
||||
# thinks it's "target" (i.e. x86_64-linux) is a musl target.
|
||||
RUST_LIBC = "${TCLIBC}"
|
||||
RUST_LIBC_class-native = "glibc"
|
||||
|
||||
def determine_libc(d, thing):
|
||||
'''Determine which libc something should target'''
|
||||
|
||||
# BUILD is never musl, TARGET may be musl or glibc,
|
||||
# HOST could be musl, but only if a compiler is built to be run on
|
||||
# target in which case HOST_SYS != BUILD_SYS.
|
||||
if thing == 'TARGET':
|
||||
libc = d.getVar('RUST_LIBC')
|
||||
elif thing == 'BUILD' and (d.getVar('HOST_SYS') != d.getVar('BUILD_SYS')):
|
||||
libc = d.getVar('RUST_LIBC')
|
||||
else:
|
||||
libc = d.getVar('RUST_LIBC_class-native')
|
||||
|
||||
return libc
|
||||
|
||||
def target_is_armv7(d):
|
||||
'''Determine if target is armv7'''
|
||||
# TUNE_FEATURES may include arm* even if the target is not arm
|
||||
# in the case of *-native packages
|
||||
if d.getVar('TARGET_ARCH') != 'arm':
|
||||
return False
|
||||
|
||||
feat = d.getVar('TUNE_FEATURES')
|
||||
feat = frozenset(feat.split())
|
||||
mach_overrides = d.getVar('MACHINEOVERRIDES')
|
||||
mach_overrides = frozenset(mach_overrides.split(':'))
|
||||
|
||||
v7=frozenset(['armv7a', 'armv7r', 'armv7m', 'armv7ve'])
|
||||
if mach_overrides.isdisjoint(v7) and feat.isdisjoint(v7):
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
# Responsible for taking Yocto triples and converting it to Rust triples
|
||||
|
||||
def rust_base_triple(d, thing):
|
||||
'''
|
||||
Mangle bitbake's *_SYS into something that rust might support (see
|
||||
@@ -58,16 +18,11 @@ def rust_base_triple(d, thing):
|
||||
Note that os is assumed to be some linux form
|
||||
'''
|
||||
|
||||
# The llvm-target for armv7 is armv7-unknown-linux-gnueabihf
|
||||
if thing == "TARGET" and target_is_armv7(d):
|
||||
arch = "armv7"
|
||||
else:
|
||||
arch = d.getVar('{}_ARCH'.format(thing))
|
||||
|
||||
arch = d.getVar('{}_ARCH'.format(thing), True)
|
||||
# All the Yocto targets are Linux and are 'unknown'
|
||||
vendor = "-unknown"
|
||||
os = d.getVar('{}_OS'.format(thing))
|
||||
libc = determine_libc(d, thing)
|
||||
os = d.getVar('{}_OS'.format(thing), True)
|
||||
libc = d.getVar('TCLIBC', True)
|
||||
|
||||
# Prefix with a dash and convert glibc -> gnu
|
||||
if libc == "glibc":
|
||||
@@ -119,11 +74,9 @@ RUST_TARGET_SYS = "${@rust_base_triple(d, 'TARGET')}"
|
||||
# use those commands based on the prefix.
|
||||
WRAPPER_DIR = "${WORKDIR}/wrapper"
|
||||
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_AR = "${WRAPPER_DIR}/build-rust-ar"
|
||||
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_AR = "${WRAPPER_DIR}/target-rust-ar"
|
||||
|
||||
@@ -133,41 +86,30 @@ create_wrapper () {
|
||||
|
||||
cat <<- EOF > "${file}"
|
||||
#!/bin/sh
|
||||
exec $@ "\$@"
|
||||
$@ "\$@"
|
||||
EOF
|
||||
chmod +x "${file}"
|
||||
}
|
||||
|
||||
export WRAPPER_TARGET_CC = "${CC}"
|
||||
export WRAPPER_TARGET_CXX = "${CXX}"
|
||||
export WRAPPER_TARGET_CCLD = "${CCLD}"
|
||||
export WRAPPER_TARGET_LDFLAGS = "${LDFLAGS}"
|
||||
export WRAPPER_TARGET_AR = "${AR}"
|
||||
|
||||
# compiler is used by gcc-rs
|
||||
# linker is used by rustc/cargo
|
||||
# archiver is used by the build of libstd-rs
|
||||
do_rust_create_wrappers () {
|
||||
mkdir -p "${WRAPPER_DIR}"
|
||||
|
||||
# Yocto Build / Rust Host C compiler
|
||||
# Yocto Build / Rust Host compiler
|
||||
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
|
||||
create_wrapper "${RUST_BUILD_CCLD}" "${BUILD_CCLD}" "${BUILD_LDFLAGS}"
|
||||
# Yocto Build / Rust Host archiver
|
||||
create_wrapper "${RUST_BUILD_AR}" "${BUILD_AR}"
|
||||
|
||||
# Yocto Target / Rust Target C compiler
|
||||
create_wrapper "${RUST_TARGET_CC}" "${WRAPPER_TARGET_CC}"
|
||||
# Yocto Target / Rust Target C++ compiler
|
||||
create_wrapper "${RUST_TARGET_CXX}" "${WRAPPER_TARGET_CXX}"
|
||||
# Yocto Target / Rust Target compiler
|
||||
create_wrapper "${RUST_TARGET_CC}" "${CC}"
|
||||
# Yocto Target / Rust Target linker
|
||||
create_wrapper "${RUST_TARGET_CCLD}" "${WRAPPER_TARGET_CCLD}" "${WRAPPER_TARGET_LDFLAGS}"
|
||||
create_wrapper "${RUST_TARGET_CCLD}" "${CCLD}" "${LDFLAGS}"
|
||||
# Yocto Target / Rust Target archiver
|
||||
create_wrapper "${RUST_TARGET_AR}" "${WRAPPER_TARGET_AR}"
|
||||
|
||||
create_wrapper "${RUST_TARGET_AR}" "${AR}"
|
||||
}
|
||||
|
||||
addtask rust_create_wrappers before do_configure after do_patch
|
||||
|
||||
@@ -8,8 +8,8 @@ def rust_base_dep(d):
|
||||
# Taken from meta/classes/base.bbclass `base_dep_prepend` and modified to
|
||||
# use rust instead of gcc
|
||||
deps = ""
|
||||
if not d.getVar('INHIBIT_DEFAULT_RUST_DEPS'):
|
||||
if (d.getVar('HOST_SYS') != d.getVar('BUILD_SYS')):
|
||||
if not d.getVar('INHIBIT_DEFAULT_RUST_DEPS', True):
|
||||
if (d.getVar('HOST_SYS', True) != d.getVar('BUILD_SYS', True)):
|
||||
deps += " virtual/${TARGET_PREFIX}rust ${RUSTLIB_DEP}"
|
||||
else:
|
||||
deps += " rust-native"
|
||||
@@ -42,4 +42,3 @@ rustlib_suffix="${TUNE_ARCH}${TARGET_VENDOR}-${TARGET_OS}/rustlib/${HOST_SYS}/li
|
||||
rustlib_src="${prefix}/lib/${rustlib_suffix}"
|
||||
# Host sysroot standard library path
|
||||
rustlib="${libdir}/${rustlib_suffix}"
|
||||
rustlib_class-native="${libdir}/rustlib/${BUILD_SYS}/lib"
|
||||
|
||||
@@ -8,11 +8,12 @@ BBFILES ?= ""
|
||||
BBLAYERS ?= " \
|
||||
##OEROOT##/meta-rust \
|
||||
##OEROOT##/meta \
|
||||
##OEROOT##/meta-poky \
|
||||
##OEROOT##/meta-yocto \
|
||||
##OEROOT##/meta-yocto-bsp \
|
||||
##OEROOT##/meta-openembedded/meta-oe \
|
||||
##OEROOT##/meta-openembedded/meta-networking \
|
||||
##OEROOT##/meta-openembedded/meta-python \
|
||||
##OEROOT##/meta-openembedded/meta-ruby \
|
||||
"
|
||||
BBLAYERS_NON_REMOVABLE ?= " \
|
||||
##OEROOT##/meta \
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# include this in your distribution to easily switch between versions
|
||||
# just by changing RUST_VERSION variable
|
||||
|
||||
RUST_VERSION ?= "1.49.0"
|
||||
|
||||
PREFERRED_VERSION_cargo ?= "${RUST_VERSION}"
|
||||
PREFERRED_VERSION_cargo-native ?= "${RUST_VERSION}"
|
||||
PREFERRED_VERSION_libstd-rs ?= "${RUST_VERSION}"
|
||||
PREFERRED_VERSION_rust ?= "${RUST_VERSION}"
|
||||
PREFERRED_VERSION_rust-cross-${TARGET_ARCH} ?= "${RUST_VERSION}"
|
||||
PREFERRED_VERSION_rust-llvm ?= "${RUST_VERSION}"
|
||||
PREFERRED_VERSION_rust-llvm-native ?= "${RUST_VERSION}"
|
||||
PREFERRED_VERSION_rust-native ?= "${RUST_VERSION}"
|
||||
@@ -8,8 +8,5 @@ BBFILE_COLLECTIONS += "rust-layer"
|
||||
BBFILE_PATTERN_rust-layer := "^${LAYERDIR}/"
|
||||
BBFILE_PRIORITY_rust-layer = "7"
|
||||
|
||||
LAYERDEPENDS_rust-layer = "core openembedded-layer"
|
||||
LAYERSERIES_COMPAT_rust-layer = "rocko sumo thud warrior zeus dunfell gatesgarth hardknott"
|
||||
|
||||
# Override security flags
|
||||
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://.* file:///some/local/dir/sstate/PATH"
|
||||
|
||||
SSTATE_MIRRORS ?= "file://.* http://build-cache.asterius.io/master/sstate-cache/PATH;downloadfilename=PATH \n"
|
||||
SSTATE_MIRRORS ?= "file://.* http://build-cache.asterius.io/sstate/PATH;downloadfilename=PATH \n"
|
||||
|
||||
SOURCE_MIRROR_URL ?= "http://build-cache.asterius.io/downloads/"
|
||||
INHERIT += "own-mirrors rm_work"
|
||||
|
||||
114
lib/crate.py
114
lib/crate.py
@@ -35,6 +35,21 @@ class Crate(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):
|
||||
return os.path.join(rootdir, "cargo_home", "bitbake")
|
||||
|
||||
@@ -42,7 +57,7 @@ class Crate(Wget):
|
||||
"""
|
||||
Check to see if a given url is for this fetcher
|
||||
"""
|
||||
return ud.type in ['crate']
|
||||
return ud.type in ['crate', 'crate-index']
|
||||
|
||||
def recommends_checksum(self, urldata):
|
||||
return False
|
||||
@@ -54,6 +69,8 @@ class Crate(Wget):
|
||||
|
||||
if ud.type == 'crate':
|
||||
self._crate_urldata_init(ud, d)
|
||||
elif ud.type == 'crate-index':
|
||||
self._index_urldata_init(ud, d)
|
||||
|
||||
super(Crate, self).urldata_init(ud, d)
|
||||
|
||||
@@ -85,15 +102,71 @@ class Crate(Wget):
|
||||
|
||||
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):
|
||||
"""
|
||||
Uses the crate to build the necessary paths for cargo to utilize it
|
||||
"""
|
||||
if ud.type == 'crate':
|
||||
if ud.type == 'crate-index':
|
||||
return self._index_unpack(ud, rootdir, d)
|
||||
elif ud.type == 'crate':
|
||||
return self._crate_unpack(ud, rootdir, d)
|
||||
else:
|
||||
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):
|
||||
"""
|
||||
Unpacks a crate
|
||||
@@ -107,10 +180,12 @@ class Crate(Wget):
|
||||
save_cwd = os.getcwd()
|
||||
os.chdir(rootdir)
|
||||
|
||||
pn = d.getVar('BPN')
|
||||
pn = d.getVar('BPN', True)
|
||||
if pn == ud.parm.get('name'):
|
||||
cmd = "tar -xz --no-same-owner -f %s" % thefile
|
||||
else:
|
||||
self._crate_unpack_old_layout(ud, rootdir, d)
|
||||
|
||||
cargo_bitbake = self._cargo_bitbake_path(rootdir)
|
||||
|
||||
cmd = "tar -xz --no-same-owner -f %s -C %s" % (thefile, cargo_bitbake)
|
||||
@@ -127,7 +202,7 @@ class Crate(Wget):
|
||||
metadata['package'] = tarhash
|
||||
|
||||
# path it
|
||||
path = d.getVar('PATH')
|
||||
path = d.getVar('PATH', True)
|
||||
if path:
|
||||
cmd = "PATH=\"%s\" %s" % (path, cmd)
|
||||
bb.note("Unpacking %s to %s/" % (thefile, os.getcwd()))
|
||||
@@ -147,3 +222,34 @@ class Crate(Wget):
|
||||
mdpath = os.path.join(bbpath, cratepath, mdfile)
|
||||
with open(mdpath, "w") as 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)
|
||||
|
||||
20
recipes-core/aho-corasick/aho-corasick-rs_0.2.1.bb
Normal file
20
recipes-core/aho-corasick/aho-corasick-rs_0.2.1.bb
Normal file
@@ -0,0 +1,20 @@
|
||||
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
|
||||
}
|
||||
24
recipes-core/bitflags/bitflags_0.5.0.bb
Normal file
24
recipes-core/bitflags/bitflags_0.5.0.bb
Normal file
@@ -0,0 +1,24 @@
|
||||
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
|
||||
}
|
||||
28
recipes-core/crypto/crypto-rs_0.2.31.bb
Normal file
28
recipes-core/crypto/crypto-rs_0.2.31.bb
Normal file
@@ -0,0 +1,28 @@
|
||||
DESCRIPTION = "A (mostly) pure-Rust implementation of various common cryptographic algorithms."
|
||||
HOMEPAGE = "https://github.com/DaGenix/rust-crypto/"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=4311034aa04489226c1fc3f816dbfb5a \
|
||||
file://LICENSE-APACHE;md5=a02fef6dccf840318474c108a8281b77 \
|
||||
"
|
||||
DEPENDS = "\
|
||||
libc-rs \
|
||||
time-rs \
|
||||
rand-rs \
|
||||
rustc-serialize-rs \
|
||||
"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/DaGenix/rust-crypto.git;protocol=https"
|
||||
SRCREV = "5571cb41690b9cee12025192393ea7df0eddc21b"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
20
recipes-core/dbus/dbus-rs_0.1.0.bb
Normal file
20
recipes-core/dbus/dbus-rs_0.1.0.bb
Normal file
@@ -0,0 +1,20 @@
|
||||
DESCRIPTION = "DBus binding for rust"
|
||||
HOMEPAGE = "https://github.com/diwic/dbus-rs"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
|
||||
DEPENDS = "libc-rs dbus"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/diwic/dbus-rs.git;protocol=https"
|
||||
SRCREV = "d23c8b7fecd5a8e82131893250a5ac376799faff"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
19
recipes-core/debug-builders/debug-builders-rs_0.1.0.bb
Normal file
19
recipes-core/debug-builders/debug-builders-rs_0.1.0.bb
Normal file
@@ -0,0 +1,19 @@
|
||||
DESCRIPTION = "A copy of libstd's debug builders for use before they stabilize"
|
||||
HOMEPAGE = "https://github.com/sfackler/rust-debug-builders"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://Cargo.toml;md5=97a131dc4ae910d242387f2c9d1a2ce8"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/sfackler/rust-debug-builders.git;protocol=https"
|
||||
SRCREV = "c6943b72c7808ddaa151d08b824525cc7420cb9b"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
23
recipes-core/getopts/getopts-rs_0.2.11.bb
Normal file
23
recipes-core/getopts/getopts-rs_0.2.11.bb
Normal file
@@ -0,0 +1,23 @@
|
||||
DESCRIPTION = "getopts-like option parsing"
|
||||
HOMEPAGE = "https://github.com/rust-lang/getopts"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
DEPENDS = "log-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang/getopts.git;protocol=https"
|
||||
SRCREV = "a13c62b7d860b6d370129ebb972bf5e0373c5be7"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
23
recipes-core/lazy-static/lazy-static_0.2.1.bb
Normal file
23
recipes-core/lazy-static/lazy-static_0.2.1.bb
Normal file
@@ -0,0 +1,23 @@
|
||||
DESCRIPTION = "A macro for declaring lazily evaluated statics in Rust."
|
||||
HOMEPAGE = "https://github.com/rust-lang-nursery/lazy-static.rs"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE;md5=5795ddb4df1d696d439b6667081cffc9 \
|
||||
"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang-nursery/lazy-static.rs.git;protocol=https"
|
||||
SRCREV = "ffe65c818474f863945ca535c0e53f3b8b848ff7"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
LIB_SRC = "${S}/src/lib.rs"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
24
recipes-core/libc/libc-rs_0.2.5.bb
Normal file
24
recipes-core/libc/libc-rs_0.2.5.bb
Normal file
@@ -0,0 +1,24 @@
|
||||
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
|
||||
}
|
||||
6
recipes-core/log/env-logger-rs_0.3.1.bb
Normal file
6
recipes-core/log/env-logger-rs_0.3.1.bb
Normal file
@@ -0,0 +1,6 @@
|
||||
DESCRIPTION = "An logging implementation for `log` which is configured via an environment variable"
|
||||
DEPENDS = "regex-rs log-rs"
|
||||
|
||||
require log.inc
|
||||
|
||||
LIB_SRC = "${S}/env/src/lib.rs"
|
||||
4
recipes-core/log/log-rs.bb
Normal file
4
recipes-core/log/log-rs.bb
Normal file
@@ -0,0 +1,4 @@
|
||||
DESCRIPTION = "A Rust library providing a lightweight logging facade"
|
||||
DEPENDS = "libc-rs"
|
||||
|
||||
require log.inc
|
||||
22
recipes-core/log/log.inc
Normal file
22
recipes-core/log/log.inc
Normal file
@@ -0,0 +1,22 @@
|
||||
HOMEPAGE = "https://github.com/rust-lang/log"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang/log.git;protocol=https"
|
||||
SRCREV = "5453e16166ec451afc9738978ca01f162127ebbe"
|
||||
PV = "0.3.1"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
20
recipes-core/memchr/memchr-rs_0.1.11.bb
Normal file
20
recipes-core/memchr/memchr-rs_0.1.11.bb
Normal file
@@ -0,0 +1,20 @@
|
||||
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
|
||||
}
|
||||
5
recipes-core/num/num-integer_0.1.34.bb
Normal file
5
recipes-core/num/num-integer_0.1.34.bb
Normal file
@@ -0,0 +1,5 @@
|
||||
require num.inc
|
||||
|
||||
DEPENDS += "num-traits"
|
||||
|
||||
LIB_SRC = "${S}/integer/src/lib.rs"
|
||||
6
recipes-core/num/num-iter_0.1.34.bb
Normal file
6
recipes-core/num/num-iter_0.1.34.bb
Normal file
@@ -0,0 +1,6 @@
|
||||
require num.inc
|
||||
|
||||
DEPENDS += "num-traits"
|
||||
DEPENDS += "num-integer"
|
||||
|
||||
LIB_SRC = "${S}/iter/src/lib.rs"
|
||||
3
recipes-core/num/num-traits_0.1.34.bb
Normal file
3
recipes-core/num/num-traits_0.1.34.bb
Normal file
@@ -0,0 +1,3 @@
|
||||
require num.inc
|
||||
|
||||
LIB_SRC = "${S}/traits/src/lib.rs"
|
||||
22
recipes-core/num/num.inc
Normal file
22
recipes-core/num/num.inc
Normal file
@@ -0,0 +1,22 @@
|
||||
DESCRIPTION = "A collection of numeric types and traits for Rust, including bigint, complex, rational, range iterators, generic integers, and more!"
|
||||
HOMEPAGE = "https://github.com/rust-num/num"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-num/num.git;protocol=https"
|
||||
SRCREV = "d9f08cb148cc686ec407c1e42fbd4536cde6ac82"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
9
recipes-core/num/num_0.1.34.bb
Normal file
9
recipes-core/num/num_0.1.34.bb
Normal file
@@ -0,0 +1,9 @@
|
||||
require num.inc
|
||||
|
||||
DEPENDS += "\
|
||||
num-traits \
|
||||
num-integer \
|
||||
num-iter \
|
||||
"
|
||||
|
||||
LIB_SRC = "${S}/src/lib.rs"
|
||||
@@ -1,18 +0,0 @@
|
||||
SUMMARY = "Host SDK package for Rust cross canadian toolchain"
|
||||
PN = "packagegroup-rust-cross-canadian-${MACHINE}"
|
||||
|
||||
inherit cross-canadian packagegroup
|
||||
|
||||
PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1"
|
||||
|
||||
RUST="rust-cross-canadian-${TRANSLATED_TARGET_ARCH}"
|
||||
CARGO="cargo-cross-canadian-${TRANSLATED_TARGET_ARCH}"
|
||||
RUST_TOOLS="rust-tools-cross-canadian-${TRANSLATED_TARGET_ARCH}"
|
||||
|
||||
RDEPENDS_${PN} = " \
|
||||
${@all_multilib_tune_values(d, 'RUST')} \
|
||||
${@all_multilib_tune_values(d, 'CARGO')} \
|
||||
rust-cross-canadian-src \
|
||||
${@all_multilib_tune_values(d, 'RUST_TOOLS')} \
|
||||
"
|
||||
|
||||
23
recipes-core/rand/rand-rs_0.3.14.bb
Normal file
23
recipes-core/rand/rand-rs_0.3.14.bb
Normal file
@@ -0,0 +1,23 @@
|
||||
DESCRIPTION = "Random number generators and other randomness functionality."
|
||||
HOMEPAGE = "https://github.com/rust-lang/rand"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
DEPENDS = "libc-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang/rand.git;protocol=https"
|
||||
SRCREV = "f872fda5fb8fb899a837ee9eee0332076a8f5300"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
10
recipes-core/regex/regex-rs.bb
Normal file
10
recipes-core/regex/regex-rs.bb
Normal file
@@ -0,0 +1,10 @@
|
||||
DESCRIPTION = "An implementation of regular expressions for Rust"
|
||||
DEPENDS = "\
|
||||
aho-corasick-rs \
|
||||
memchr-rs \
|
||||
regex-syntax-rs \
|
||||
"
|
||||
|
||||
require regex.inc
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
5
recipes-core/regex/regex-syntax-rs.bb
Normal file
5
recipes-core/regex/regex-syntax-rs.bb
Normal file
@@ -0,0 +1,5 @@
|
||||
DESCRIPTION = "A regular expression parser"
|
||||
|
||||
require regex.inc
|
||||
|
||||
LIB_SRC = "${S}/regex-syntax/src/lib.rs"
|
||||
22
recipes-core/regex/regex.inc
Normal file
22
recipes-core/regex/regex.inc
Normal file
@@ -0,0 +1,22 @@
|
||||
HOMEPAGE = "https://github.com/rust-lang/regex"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang/regex.git;protocol=https"
|
||||
SRCREV = "c9e6781a6845478aa2d8ebc86972755f854fdbe0"
|
||||
PV = "0.1.38"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
22
recipes-core/rustc-serialize/rustc-serialize-rs_0.3.19.bb
Normal file
22
recipes-core/rustc-serialize/rustc-serialize-rs_0.3.19.bb
Normal file
@@ -0,0 +1,22 @@
|
||||
DESCRIPTION = "Generic serialization/deserialization support"
|
||||
HOMEPAGE = "https://github.com/rust-lang/rustc-serialize"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://LICENSE-MIT;md5=362255802eb5aa87810d12ddf3cfedb4 \
|
||||
file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
|
||||
"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/rust-lang/rustc-serialize.git;protocol=https"
|
||||
SRCREV = "64b38a1f31a9af6eabf2894437aa5ccc3e457e68"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
26
recipes-core/time/time-rs_0.1.26.bb
Normal file
26
recipes-core/time/time-rs_0.1.26.bb
Normal file
@@ -0,0 +1,26 @@
|
||||
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
|
||||
}
|
||||
20
recipes-core/udev/libudev-rs_0.1.0.bb
Normal file
20
recipes-core/udev/libudev-rs_0.1.0.bb
Normal file
@@ -0,0 +1,20 @@
|
||||
DESCRIPTION = "FFI bindings to libudev"
|
||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
||||
DEPENDS = "libudev-sys-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/dcuddeback/libudev-rs.git;protocol=https"
|
||||
SRCREV = "d55763c626790e2e8724947503238731843a969a"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
22
recipes-core/udev/libudev-rs_0.1.2.bb
Normal file
22
recipes-core/udev/libudev-rs_0.1.2.bb
Normal file
@@ -0,0 +1,22 @@
|
||||
DESCRIPTION = "FFI bindings to libudev"
|
||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
||||
|
||||
DEPENDS += "libudev-sys-rs"
|
||||
DEPENDS += "libc-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/dcuddeback/libudev-rs.git;protocol=https"
|
||||
SRCREV = "3da791245f206d0cf5a856531c574b8646b0f059"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
22
recipes-core/udev/libudev-sys-rs_0.1.1.bb
Normal file
22
recipes-core/udev/libudev-sys-rs_0.1.1.bb
Normal file
@@ -0,0 +1,22 @@
|
||||
DESCRIPTION = "FFI bindings to libudev"
|
||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
||||
DEPENDS = "libc-rs udev"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/dcuddeback/libudev-sys.git;protocol=https"
|
||||
SRCREV = "14c24afc61e3315dffddab2c7f36999a16a002d8"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
RUSTC_FLAGS += "-ludev"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
22
recipes-core/udev/libudev-sys-rs_0.1.3.bb
Normal file
22
recipes-core/udev/libudev-sys-rs_0.1.3.bb
Normal file
@@ -0,0 +1,22 @@
|
||||
DESCRIPTION = "FFI bindings to libudev"
|
||||
HOMEPAGE = "https://github.com/dcuddeback/libudev-sys"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bbd2acd29c4ba5d4591b03e2757c04a3"
|
||||
DEPENDS = "libc-rs udev"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/dcuddeback/libudev-sys.git;protocol=https"
|
||||
SRCREV = "c49163f87d4d109ec21bcf8f8c51db560ed31b22"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
RUSTC_FLAGS += "-ludev"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
20
recipes-core/unix-socket/unix-socket-rs_0.4.3.bb
Normal file
20
recipes-core/unix-socket/unix-socket-rs_0.4.3.bb
Normal file
@@ -0,0 +1,20 @@
|
||||
DESCRIPTION = "Unix domain socket bindings for Rust"
|
||||
HOMEPAGE = "https://github.com/sfackler/rust-unix-socket"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=bde86283c1fd74e84ebc3cf6dd7011d0"
|
||||
DEPENDS = "libc-rs debug-builders-rs"
|
||||
|
||||
inherit rust-bin
|
||||
|
||||
SRC_URI = "git://github.com/sfackler/rust-unix-socket.git;protocol=https"
|
||||
SRCREV = "d0f47ae888267a718072c3be5eed42ba1f637097"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_compile () {
|
||||
oe_compile_rust_lib
|
||||
}
|
||||
|
||||
do_install () {
|
||||
oe_install_rust_lib
|
||||
}
|
||||
3
recipes-deps/libgit2/libgit2-release.inc
Normal file
3
recipes-deps/libgit2/libgit2-release.inc
Normal file
@@ -0,0 +1,3 @@
|
||||
require libgit2.inc
|
||||
SRC_URI = "https://github.com/libgit2/libgit2/archive/v${PV}.tar.gz"
|
||||
|
||||
21
recipes-deps/libgit2/libgit2.inc
Normal file
21
recipes-deps/libgit2/libgit2.inc
Normal file
@@ -0,0 +1,21 @@
|
||||
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"
|
||||
4
recipes-deps/libgit2/libgit2_0.24.1.bb
Normal file
4
recipes-deps/libgit2/libgit2_0.24.1.bb
Normal file
@@ -0,0 +1,4 @@
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=34197a479f637beb9e09e56893f48bc2"
|
||||
SRC_URI[md5sum] = "3674ca2d40388b1175e25b6f5a3a82ad"
|
||||
SRC_URI[sha256sum] = "60198cbb34066b9b5c1613d15c0479f6cd25f4aef42f7ec515cd1cc13a77fede"
|
||||
require libgit2-release.inc
|
||||
2
recipes-deps/libssh2/libssh2_%.bbappend
Normal file
2
recipes-deps/libssh2/libssh2_%.bbappend
Normal file
@@ -0,0 +1,2 @@
|
||||
# meta-oe/recipes-support/libssh2
|
||||
BBCLASSEXTEND = "native"
|
||||
@@ -1,31 +0,0 @@
|
||||
From 7f8a197af9c33d0575187663f796f882064136dc Mon Sep 17 00:00:00 2001
|
||||
From: Johan Anderholm <johan.anderholm@gmail.com>
|
||||
Date: Sun, 27 Jan 2019 10:19:00 +0100
|
||||
Subject: [PATCH] Disable http2
|
||||
|
||||
http2 requires that curl is build with nghttp2 which in turn depends on
|
||||
many dependencies and ultimately a dependency loop in the case of
|
||||
curl-native. As long as multiplexing is disabled in cargo this should
|
||||
be fine.
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
---
|
||||
Cargo.toml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index fde0a3188..a4a51939a 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -25,7 +25,7 @@ cargo-platform = { path = "crates/cargo-platform", version = "0.1.1" }
|
||||
crates-io = { path = "crates/crates-io", version = "0.31.1" }
|
||||
crossbeam-utils = "0.8"
|
||||
crypto-hash = "0.3.1"
|
||||
-curl = { version = "0.4.23", features = ["http2"] }
|
||||
+curl = { version = "0.4.23" }
|
||||
curl-sys = "0.4.22"
|
||||
env_logger = "0.8.1"
|
||||
pretty_env_logger = { version = "0.4", optional = true }
|
||||
--
|
||||
2.28.0
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
Add suppor for riscv64 and riscv32 musl targets
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
--- a/vendor/cc/src/lib.rs
|
||||
+++ b/vendor/cc/src/lib.rs
|
||||
@@ -2361,6 +2361,7 @@ impl Build {
|
||||
"riscv-none-embed",
|
||||
]),
|
||||
"riscv64gc-unknown-linux-gnu" => Some("riscv64-linux-gnu"),
|
||||
+ "riscv64gc-unknown-linux-musl" => Some("riscv64-linux-musl"),
|
||||
"s390x-unknown-linux-gnu" => Some("s390x-linux-gnu"),
|
||||
"sparc-unknown-linux-gnu" => Some("sparc-linux-gnu"),
|
||||
"sparc64-unknown-linux-gnu" => Some("sparc64-linux-gnu"),
|
||||
--- a/compiler/rustc_target/src/spec/mod.rs
|
||||
+++ b/compiler/rustc_target/src/spec/mod.rs
|
||||
@@ -641,9 +641,11 @@ supported_targets! {
|
||||
("riscv32imc-unknown-none-elf", riscv32imc_unknown_none_elf),
|
||||
("riscv32imac-unknown-none-elf", riscv32imac_unknown_none_elf),
|
||||
("riscv32gc-unknown-linux-gnu", riscv32gc_unknown_linux_gnu),
|
||||
+ ("riscv32gc-unknown-linux-musl", riscv32gc_unknown_linux_musl),
|
||||
("riscv64imac-unknown-none-elf", riscv64imac_unknown_none_elf),
|
||||
("riscv64gc-unknown-none-elf", riscv64gc_unknown_none_elf),
|
||||
("riscv64gc-unknown-linux-gnu", riscv64gc_unknown_linux_gnu),
|
||||
+ ("riscv64gc-unknown-linux-musl", riscv64gc_unknown_linux_musl),
|
||||
|
||||
("aarch64-unknown-none", aarch64_unknown_none),
|
||||
("aarch64-unknown-none-softfloat", aarch64_unknown_none_softfloat),
|
||||
--- /dev/null
|
||||
+++ b/compiler/rustc_target/src/spec/riscv32gc_unknown_linux_musl.rs
|
||||
@@ -0,0 +1,19 @@
|
||||
+use crate::spec::{CodeModel, Target, TargetOptions};
|
||||
+
|
||||
+pub fn target() -> Target {
|
||||
+ Target {
|
||||
+ llvm_target: "riscv32-unknown-linux-musl".to_string(),
|
||||
+ pointer_width: 32,
|
||||
+ data_layout: "e-m:e-p:32:32-i64:64-n32-S128".to_string(),
|
||||
+ arch: "riscv32".to_string(),
|
||||
+ options: TargetOptions {
|
||||
+ unsupported_abis: super::riscv_base::unsupported_abis(),
|
||||
+ code_model: Some(CodeModel::Medium),
|
||||
+ cpu: "generic-rv32".to_string(),
|
||||
+ features: "+m,+a,+f,+d,+c".to_string(),
|
||||
+ llvm_abiname: "ilp32d".to_string(),
|
||||
+ max_atomic_width: Some(32),
|
||||
+ ..super::linux_musl_base::opts()
|
||||
+ },
|
||||
+ }
|
||||
+}
|
||||
--- /dev/null
|
||||
+++ b/compiler/rustc_target/src/spec/riscv64gc_unknown_linux_musl.rs
|
||||
@@ -0,0 +1,19 @@
|
||||
+use crate::spec::{CodeModel, Target, TargetOptions};
|
||||
+
|
||||
+pub fn target() -> Target {
|
||||
+ Target {
|
||||
+ llvm_target: "riscv64-unknown-linux-musl".to_string(),
|
||||
+ pointer_width: 64,
|
||||
+ data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".to_string(),
|
||||
+ arch: "riscv64".to_string(),
|
||||
+ options: TargetOptions {
|
||||
+ unsupported_abis: super::riscv_base::unsupported_abis(),
|
||||
+ code_model: Some(CodeModel::Medium),
|
||||
+ cpu: "generic-rv64".to_string(),
|
||||
+ features: "+m,+a,+f,+d,+c".to_string(),
|
||||
+ llvm_abiname: "lp64d".to_string(),
|
||||
+ max_atomic_width: Some(64),
|
||||
+ ..super::linux_musl_base::opts()
|
||||
+ },
|
||||
+ }
|
||||
+}
|
||||
@@ -1,37 +0,0 @@
|
||||
--- a/vendor/cc-1.0.60/.cargo-checksum.json
|
||||
+++ b/vendor/cc-1.0.60/.cargo-checksum.json
|
||||
@@ -1 +1 @@
|
||||
-{"files":{"Cargo.lock":"30b9e23f97015aea3eed3e17c6d76d565c2924efec8bdae64c899080847afe89","Cargo.toml":"f6f22b69df3df57c58373cdee72b22218ffa030bc375b36632660037dd72c866","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"51405d284d2e0620db62c655c652fc0ec84f20c1cb30529227355c9575a9e6dd","src/bin/gcc-shim.rs":"b77907875029494b6288841c3aed2e4939ed40708c7f597fca5c9e2570490ca6","src/com.rs":"bcdaf1c28b71e6ef889c6b08d1ce9d7c0761344a677f523bc4c3cd297957f804","src/lib.rs":"903c5f2f5dd0cc7d04f99f605a95e6abde8b38156fd4e73eefc58493f55a4e5a","src/registry.rs":"3cc1b5a50879fa751572878ae1d0afbfc960c11665258492754b2c8bccb0ff5d","src/setup_config.rs":"7014103587d3382eac599cb76f016e2609b8140970861b2237982d1db24af265","src/winapi.rs":"ea8b7edbb9ff87957254f465c2334e714c5d6b3b19a8d757c48ea7ca0881c50c","src/windows_registry.rs":"52afe8554f577c87841c48ddee3ba7ffe70a00129e1d6eeb2ec0efb3d2b9aa11","tests/cc_env.rs":"e02b3b0824ad039b47e4462c5ef6dbe6c824c28e7953af94a0f28f7b5158042e","tests/cflags.rs":"57f06eb5ce1557e5b4a032d0c4673e18fbe6f8d26c1deb153126e368b96b41b3","tests/cxxflags.rs":"c2c6c6d8a0d7146616fa1caed26876ee7bc9fcfffd525eb4743593cade5f3371","tests/support/mod.rs":"16274867f23871e9b07614eda4c7344da13d1751fed63d4f633857e40be86394","tests/test.rs":"65c073e0e2cf4aa0433066102788e9f57442719e6f32f5ad5248aa7132bb4597"},"package":"ef611cc68ff783f18535d77ddd080185275713d852c4f5cbb6122c462a7a825c"}
|
||||
\ No newline at end of file
|
||||
+{"files":{"Cargo.lock":"30b9e23f97015aea3eed3e17c6d76d565c2924efec8bdae64c899080847afe89","Cargo.toml":"f6f22b69df3df57c58373cdee72b22218ffa030bc375b36632660037dd72c866","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"51405d284d2e0620db62c655c652fc0ec84f20c1cb30529227355c9575a9e6dd","src/bin/gcc-shim.rs":"b77907875029494b6288841c3aed2e4939ed40708c7f597fca5c9e2570490ca6","src/com.rs":"bcdaf1c28b71e6ef889c6b08d1ce9d7c0761344a677f523bc4c3cd297957f804","src/lib.rs":"2788af2bdf425f267b33bc524f3e627851b52422e38f480a7e39eb834264fd73","src/registry.rs":"3cc1b5a50879fa751572878ae1d0afbfc960c11665258492754b2c8bccb0ff5d","src/setup_config.rs":"7014103587d3382eac599cb76f016e2609b8140970861b2237982d1db24af265","src/winapi.rs":"ea8b7edbb9ff87957254f465c2334e714c5d6b3b19a8d757c48ea7ca0881c50c","src/windows_registry.rs":"52afe8554f577c87841c48ddee3ba7ffe70a00129e1d6eeb2ec0efb3d2b9aa11","tests/cc_env.rs":"e02b3b0824ad039b47e4462c5ef6dbe6c824c28e7953af94a0f28f7b5158042e","tests/cflags.rs":"57f06eb5ce1557e5b4a032d0c4673e18fbe6f8d26c1deb153126e368b96b41b3","tests/cxxflags.rs":"c2c6c6d8a0d7146616fa1caed26876ee7bc9fcfffd525eb4743593cade5f3371","tests/support/mod.rs":"16274867f23871e9b07614eda4c7344da13d1751fed63d4f633857e40be86394","tests/test.rs":"65c073e0e2cf4aa0433066102788e9f57442719e6f32f5ad5248aa7132bb4597"},"package":"ef611cc68ff783f18535d77ddd080185275713d852c4f5cbb6122c462a7a825c"}
|
||||
--- a/vendor/cc-1.0.60/src/lib.rs
|
||||
+++ b/vendor/cc-1.0.60/src/lib.rs
|
||||
@@ -1639,14 +1639,17 @@ impl Build {
|
||||
let mut parts = target.split('-');
|
||||
if let Some(arch) = parts.next() {
|
||||
let arch = &arch[5..];
|
||||
- cmd.args.push(("-march=rv".to_owned() + arch).into());
|
||||
if target.contains("linux") && arch.starts_with("64") {
|
||||
+ cmd.args.push(("-march=rv64gc").into());
|
||||
cmd.args.push("-mabi=lp64d".into());
|
||||
} else if target.contains("linux") && arch.starts_with("32") {
|
||||
+ cmd.args.push(("-march=rv32gc").into());
|
||||
cmd.args.push("-mabi=ilp32d".into());
|
||||
} else if arch.starts_with("64") {
|
||||
+ cmd.args.push(("-march=rv".to_owned() + arch).into());
|
||||
cmd.args.push("-mabi=lp64".into());
|
||||
} else {
|
||||
+ cmd.args.push(("-march=rv".to_owned() + arch).into());
|
||||
cmd.args.push("-mabi=ilp32".into());
|
||||
}
|
||||
cmd.args.push("-mcmodel=medany".into());
|
||||
@@ -2332,6 +2335,9 @@ impl Build {
|
||||
"riscv-none-embed",
|
||||
]),
|
||||
"riscv64gc-unknown-linux-gnu" => Some("riscv64-linux-gnu"),
|
||||
+ "riscv32gc-unknown-linux-gnu" => Some("riscv32-linux-gnu"),
|
||||
+ "riscv64gc-unknown-linux-musl" => Some("riscv64-linux-musl"),
|
||||
+ "riscv32gc-unknown-linux-musl" => Some("riscv32-linux-musl"),
|
||||
"s390x-unknown-linux-gnu" => Some("s390x-linux-gnu"),
|
||||
"sparc-unknown-linux-gnu" => Some("sparc-linux-gnu"),
|
||||
"sparc64-unknown-linux-gnu" => Some("sparc64-linux-gnu"),
|
||||
@@ -1,28 +0,0 @@
|
||||
From 9844e63845da6cdafa485ad1ad3c99eaaa80312d Mon Sep 17 00:00:00 2001
|
||||
From: Johan Anderholm <johan.anderholm@gmail.com>
|
||||
Date: Sun, 27 Jan 2019 10:19:00 +0100
|
||||
Subject: [PATCH] Disable http2
|
||||
|
||||
http2 requires that curl is build with nghttp2 which in turn depends on
|
||||
many dependencies and ultimately a dependency loop in the case of
|
||||
curl-native. As long as multiplexing is disabled in cargo this should
|
||||
be fine.
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
---
|
||||
Cargo.toml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index 8a144a4..c4f856e 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -25,7 +25,7 @@ cargo-platform = { path = "crates/cargo-platform", version = "0.1.1" }
|
||||
crates-io = { path = "crates/crates-io", version = "0.33.0" }
|
||||
crossbeam-utils = "0.8"
|
||||
crypto-hash = "0.3.1"
|
||||
-curl = { version = "0.4.23", features = ["http2"] }
|
||||
+curl = { version = "0.4.23" }
|
||||
curl-sys = "0.4.22"
|
||||
env_logger = "0.8.1"
|
||||
pretty_env_logger = { version = "0.4", optional = true }
|
||||
@@ -1,73 +0,0 @@
|
||||
Add suppor for riscv64 and riscv32 musl targets
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
--- a/vendor/cc/src/lib.rs
|
||||
+++ b/vendor/cc/src/lib.rs
|
||||
@@ -2361,6 +2361,7 @@ impl Build {
|
||||
"riscv-none-embed",
|
||||
]),
|
||||
"riscv64gc-unknown-linux-gnu" => Some("riscv64-linux-gnu"),
|
||||
+ "riscv64gc-unknown-linux-musl" => Some("riscv64-linux-musl"),
|
||||
"s390x-unknown-linux-gnu" => Some("s390x-linux-gnu"),
|
||||
"sparc-unknown-linux-gnu" => Some("sparc-linux-gnu"),
|
||||
"sparc64-unknown-linux-gnu" => Some("sparc64-linux-gnu"),
|
||||
--- a/compiler/rustc_target/src/spec/mod.rs
|
||||
+++ b/compiler/rustc_target/src/spec/mod.rs
|
||||
@@ -641,9 +641,11 @@ supported_targets! {
|
||||
("riscv32imc-unknown-none-elf", riscv32imc_unknown_none_elf),
|
||||
("riscv32imac-unknown-none-elf", riscv32imac_unknown_none_elf),
|
||||
("riscv32gc-unknown-linux-gnu", riscv32gc_unknown_linux_gnu),
|
||||
+ ("riscv32gc-unknown-linux-musl", riscv32gc_unknown_linux_musl),
|
||||
("riscv64imac-unknown-none-elf", riscv64imac_unknown_none_elf),
|
||||
("riscv64gc-unknown-none-elf", riscv64gc_unknown_none_elf),
|
||||
("riscv64gc-unknown-linux-gnu", riscv64gc_unknown_linux_gnu),
|
||||
+ ("riscv64gc-unknown-linux-musl", riscv64gc_unknown_linux_musl),
|
||||
|
||||
("aarch64-unknown-none", aarch64_unknown_none),
|
||||
("aarch64-unknown-none-softfloat", aarch64_unknown_none_softfloat),
|
||||
--- /dev/null
|
||||
+++ b/compiler/rustc_target/src/spec/riscv32gc_unknown_linux_musl.rs
|
||||
@@ -0,0 +1,19 @@
|
||||
+use crate::spec::{CodeModel, Target, TargetOptions};
|
||||
+
|
||||
+pub fn target() -> Target {
|
||||
+ Target {
|
||||
+ llvm_target: "riscv32-unknown-linux-musl".to_string(),
|
||||
+ pointer_width: 32,
|
||||
+ data_layout: "e-m:e-p:32:32-i64:64-n32-S128".to_string(),
|
||||
+ arch: "riscv32".to_string(),
|
||||
+ options: TargetOptions {
|
||||
+ unsupported_abis: super::riscv_base::unsupported_abis(),
|
||||
+ code_model: Some(CodeModel::Medium),
|
||||
+ cpu: "generic-rv32".to_string(),
|
||||
+ features: "+m,+a,+f,+d,+c".to_string(),
|
||||
+ llvm_abiname: "ilp32d".to_string(),
|
||||
+ max_atomic_width: Some(32),
|
||||
+ ..super::linux_musl_base::opts()
|
||||
+ },
|
||||
+ }
|
||||
+}
|
||||
--- /dev/null
|
||||
+++ b/compiler/rustc_target/src/spec/riscv64gc_unknown_linux_musl.rs
|
||||
@@ -0,0 +1,19 @@
|
||||
+use crate::spec::{CodeModel, Target, TargetOptions};
|
||||
+
|
||||
+pub fn target() -> Target {
|
||||
+ Target {
|
||||
+ llvm_target: "riscv64-unknown-linux-musl".to_string(),
|
||||
+ pointer_width: 64,
|
||||
+ data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".to_string(),
|
||||
+ arch: "riscv64".to_string(),
|
||||
+ options: TargetOptions {
|
||||
+ unsupported_abis: super::riscv_base::unsupported_abis(),
|
||||
+ code_model: Some(CodeModel::Medium),
|
||||
+ cpu: "generic-rv64".to_string(),
|
||||
+ features: "+m,+a,+f,+d,+c".to_string(),
|
||||
+ llvm_abiname: "lp64d".to_string(),
|
||||
+ max_atomic_width: Some(64),
|
||||
+ ..super::linux_musl_base::opts()
|
||||
+ },
|
||||
+ }
|
||||
+}
|
||||
@@ -1,37 +0,0 @@
|
||||
--- a/vendor/cc-1.0.60/.cargo-checksum.json
|
||||
+++ b/vendor/cc-1.0.60/.cargo-checksum.json
|
||||
@@ -1 +1 @@
|
||||
-{"files":{"Cargo.lock":"30b9e23f97015aea3eed3e17c6d76d565c2924efec8bdae64c899080847afe89","Cargo.toml":"f6f22b69df3df57c58373cdee72b22218ffa030bc375b36632660037dd72c866","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"51405d284d2e0620db62c655c652fc0ec84f20c1cb30529227355c9575a9e6dd","src/bin/gcc-shim.rs":"b77907875029494b6288841c3aed2e4939ed40708c7f597fca5c9e2570490ca6","src/com.rs":"bcdaf1c28b71e6ef889c6b08d1ce9d7c0761344a677f523bc4c3cd297957f804","src/lib.rs":"903c5f2f5dd0cc7d04f99f605a95e6abde8b38156fd4e73eefc58493f55a4e5a","src/registry.rs":"3cc1b5a50879fa751572878ae1d0afbfc960c11665258492754b2c8bccb0ff5d","src/setup_config.rs":"7014103587d3382eac599cb76f016e2609b8140970861b2237982d1db24af265","src/winapi.rs":"ea8b7edbb9ff87957254f465c2334e714c5d6b3b19a8d757c48ea7ca0881c50c","src/windows_registry.rs":"52afe8554f577c87841c48ddee3ba7ffe70a00129e1d6eeb2ec0efb3d2b9aa11","tests/cc_env.rs":"e02b3b0824ad039b47e4462c5ef6dbe6c824c28e7953af94a0f28f7b5158042e","tests/cflags.rs":"57f06eb5ce1557e5b4a032d0c4673e18fbe6f8d26c1deb153126e368b96b41b3","tests/cxxflags.rs":"c2c6c6d8a0d7146616fa1caed26876ee7bc9fcfffd525eb4743593cade5f3371","tests/support/mod.rs":"16274867f23871e9b07614eda4c7344da13d1751fed63d4f633857e40be86394","tests/test.rs":"65c073e0e2cf4aa0433066102788e9f57442719e6f32f5ad5248aa7132bb4597"},"package":"ef611cc68ff783f18535d77ddd080185275713d852c4f5cbb6122c462a7a825c"}
|
||||
\ No newline at end of file
|
||||
+{"files":{"Cargo.lock":"30b9e23f97015aea3eed3e17c6d76d565c2924efec8bdae64c899080847afe89","Cargo.toml":"f6f22b69df3df57c58373cdee72b22218ffa030bc375b36632660037dd72c866","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"51405d284d2e0620db62c655c652fc0ec84f20c1cb30529227355c9575a9e6dd","src/bin/gcc-shim.rs":"b77907875029494b6288841c3aed2e4939ed40708c7f597fca5c9e2570490ca6","src/com.rs":"bcdaf1c28b71e6ef889c6b08d1ce9d7c0761344a677f523bc4c3cd297957f804","src/lib.rs":"2788af2bdf425f267b33bc524f3e627851b52422e38f480a7e39eb834264fd73","src/registry.rs":"3cc1b5a50879fa751572878ae1d0afbfc960c11665258492754b2c8bccb0ff5d","src/setup_config.rs":"7014103587d3382eac599cb76f016e2609b8140970861b2237982d1db24af265","src/winapi.rs":"ea8b7edbb9ff87957254f465c2334e714c5d6b3b19a8d757c48ea7ca0881c50c","src/windows_registry.rs":"52afe8554f577c87841c48ddee3ba7ffe70a00129e1d6eeb2ec0efb3d2b9aa11","tests/cc_env.rs":"e02b3b0824ad039b47e4462c5ef6dbe6c824c28e7953af94a0f28f7b5158042e","tests/cflags.rs":"57f06eb5ce1557e5b4a032d0c4673e18fbe6f8d26c1deb153126e368b96b41b3","tests/cxxflags.rs":"c2c6c6d8a0d7146616fa1caed26876ee7bc9fcfffd525eb4743593cade5f3371","tests/support/mod.rs":"16274867f23871e9b07614eda4c7344da13d1751fed63d4f633857e40be86394","tests/test.rs":"65c073e0e2cf4aa0433066102788e9f57442719e6f32f5ad5248aa7132bb4597"},"package":"ef611cc68ff783f18535d77ddd080185275713d852c4f5cbb6122c462a7a825c"}
|
||||
--- a/vendor/cc-1.0.60/src/lib.rs
|
||||
+++ b/vendor/cc-1.0.60/src/lib.rs
|
||||
@@ -1639,14 +1639,17 @@ impl Build {
|
||||
let mut parts = target.split('-');
|
||||
if let Some(arch) = parts.next() {
|
||||
let arch = &arch[5..];
|
||||
- cmd.args.push(("-march=rv".to_owned() + arch).into());
|
||||
if target.contains("linux") && arch.starts_with("64") {
|
||||
+ cmd.args.push(("-march=rv64gc").into());
|
||||
cmd.args.push("-mabi=lp64d".into());
|
||||
} else if target.contains("linux") && arch.starts_with("32") {
|
||||
+ cmd.args.push(("-march=rv32gc").into());
|
||||
cmd.args.push("-mabi=ilp32d".into());
|
||||
} else if arch.starts_with("64") {
|
||||
+ cmd.args.push(("-march=rv".to_owned() + arch).into());
|
||||
cmd.args.push("-mabi=lp64".into());
|
||||
} else {
|
||||
+ cmd.args.push(("-march=rv".to_owned() + arch).into());
|
||||
cmd.args.push("-mabi=ilp32".into());
|
||||
}
|
||||
cmd.args.push("-mcmodel=medany".into());
|
||||
@@ -2332,6 +2335,9 @@ impl Build {
|
||||
"riscv-none-embed",
|
||||
]),
|
||||
"riscv64gc-unknown-linux-gnu" => Some("riscv64-linux-gnu"),
|
||||
+ "riscv32gc-unknown-linux-gnu" => Some("riscv32-linux-gnu"),
|
||||
+ "riscv64gc-unknown-linux-musl" => Some("riscv64-linux-musl"),
|
||||
+ "riscv32gc-unknown-linux-musl" => Some("riscv32-linux-musl"),
|
||||
"s390x-unknown-linux-gnu" => Some("s390x-linux-gnu"),
|
||||
"sparc-unknown-linux-gnu" => Some("sparc-linux-gnu"),
|
||||
"sparc64-unknown-linux-gnu" => Some("sparc64-linux-gnu"),
|
||||
@@ -1,74 +0,0 @@
|
||||
SUMMARY = "Cargo, a package manager for Rust cross canadian flavor."
|
||||
|
||||
RUST_ALTERNATE_EXE_PATH = "${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-config"
|
||||
|
||||
HOST_SYS = "${HOST_ARCH}-unknown-linux-gnu"
|
||||
CARGO_RUST_TARGET_CCLD = "${RUST_BUILD_CCLD}"
|
||||
|
||||
require recipes-devtools/rust/rust-common.inc
|
||||
require cargo.inc
|
||||
|
||||
CARGO = "${WORKDIR}/${CARGO_SNAPSHOT}/bin/cargo"
|
||||
BASEDEPENDS_remove = "cargo-native"
|
||||
|
||||
export RUST_TARGET_PATH="${WORKDIR}/targets/"
|
||||
|
||||
RUSTLIB = " \
|
||||
-L ${STAGING_DIR_NATIVE}/${SDKPATHNATIVE}/usr/lib/${TARGET_SYS}/rustlib/${HOST_SYS}/lib \
|
||||
"
|
||||
|
||||
DEPENDS += "rust-native \
|
||||
rust-cross-canadian-${TRANSLATED_TARGET_ARCH} \
|
||||
virtual/nativesdk-${HOST_PREFIX}compilerlibs \
|
||||
nativesdk-openssl nativesdk-zlib \
|
||||
virtual/nativesdk-libc \
|
||||
"
|
||||
|
||||
inherit cross-canadian
|
||||
|
||||
PN = "cargo-cross-canadian-${TRANSLATED_TARGET_ARCH}"
|
||||
|
||||
LLVM_TARGET[x86_64] = "${RUST_HOST_SYS}"
|
||||
|
||||
python do_rust_gen_targets () {
|
||||
wd = d.getVar('WORKDIR') + '/targets/'
|
||||
|
||||
rust_gen_target(d, 'BUILD', wd, "", "generic", d.getVar('BUILD_ARCH'))
|
||||
rust_gen_target(d, 'HOST', wd, "", "generic", d.getVar('HOST_ARCH'))
|
||||
}
|
||||
|
||||
do_compile_prepend () {
|
||||
PKG_CONFIG_PATH="${RECIPE_SYSROOT_NATIVE}/usr/lib/pkgconfig:${PKG_CONFIG_PATH}"
|
||||
}
|
||||
|
||||
do_install () {
|
||||
SYS_BINDIR=$(dirname ${D}${bindir})
|
||||
install -d "${SYS_BINDIR}"
|
||||
install -m 755 "${B}/target/${CARGO_TARGET_SUBDIR}/cargo" "${SYS_BINDIR}"
|
||||
for i in ${SYS_BINDIR}/*; do
|
||||
chrpath -r "\$ORIGIN/../lib" ${i}
|
||||
done
|
||||
|
||||
ENV_SETUP_DIR=${D}${base_prefix}/environment-setup.d
|
||||
mkdir "${ENV_SETUP_DIR}"
|
||||
ENV_SETUP_SH="${ENV_SETUP_DIR}/cargo.sh"
|
||||
cat <<- EOF > "${ENV_SETUP_SH}"
|
||||
export CARGO_HOME="\$OECORE_TARGET_SYSROOT/home/cargo"
|
||||
mkdir -p "\$CARGO_HOME"
|
||||
# Init the default target once, it might be otherwise user modified.
|
||||
if [ ! -f "\$CARGO_HOME/config" ]; then
|
||||
touch "\$CARGO_HOME/config"
|
||||
echo "[build]" >> "\$CARGO_HOME/config"
|
||||
echo 'target = "'${TARGET_SYS}'"' >> "\$CARGO_HOME/config"
|
||||
fi
|
||||
|
||||
# Keep the below off as long as HTTP/2 is disabled.
|
||||
export CARGO_HTTP_MULTIPLEXING=false
|
||||
|
||||
export CARGO_HTTP_CAINFO="\$OECORE_NATIVE_SYSROOT/etc/ssl/certs/ca-certificates.crt"
|
||||
EOF
|
||||
}
|
||||
|
||||
PKG_SYS_BINDIR = "${SDKPATHNATIVE}/usr/bin"
|
||||
FILES_${PN} += "${base_prefix}/environment-setup.d ${PKG_SYS_BINDIR}"
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
require recipes-devtools/rust/rust-source-${PV}.inc
|
||||
require recipes-devtools/rust/rust-snapshot-${PV}.inc
|
||||
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/cargo-${PV}:"
|
||||
|
||||
require cargo-cross-canadian.inc
|
||||
@@ -1,6 +0,0 @@
|
||||
require recipes-devtools/rust/rust-source-${PV}.inc
|
||||
require recipes-devtools/rust/rust-snapshot-${PV}.inc
|
||||
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/cargo-${PV}:"
|
||||
|
||||
require cargo-cross-canadian.inc
|
||||
4
recipes-devtools/cargo/cargo-snapshot.inc
Normal file
4
recipes-devtools/cargo/cargo-snapshot.inc
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
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,51 +1,59 @@
|
||||
SUMMARY ?= "Cargo, a package manager for Rust."
|
||||
HOMEPAGE = "https://crates.io"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
inherit cargo
|
||||
inherit patch
|
||||
|
||||
SUMMARY = "Cargo downloads your Rust project's dependencies and builds your project"
|
||||
HOMEPAGE = "http://crates.io"
|
||||
SECTION = "devel"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
|
||||
DEPENDS = "openssl zlib curl ca-certificates libssh2"
|
||||
DEPENDS = "openssl zlib libgit2 curl ca-certificates libssh2"
|
||||
|
||||
LIC_FILES_CHKSUM = " \
|
||||
file://LICENSE-MIT;md5=b377b220f43d747efdec40d69fcaa69d \
|
||||
file://LICENSE-APACHE;md5=71b224ca933f0676e26d5c2e2271331c \
|
||||
file://LICENSE-THIRD-PARTY;md5=f257ad009884cb88a3a87d6920e7180a \
|
||||
CARGO_INDEX_COMMIT = "6127fc24b0b6fe73fe4d339817fbf000b9a798a2"
|
||||
|
||||
SRC_URI = "\
|
||||
http://static-rust-lang-org.s3.amazonaws.com/cargo-dist/${CARGO_SNAPSHOT} \
|
||||
crate-index://crates.io/${CARGO_INDEX_COMMIT} \
|
||||
"
|
||||
|
||||
SRC_URI += "file://0001-Disable-http2.patch"
|
||||
B = "${S}"
|
||||
|
||||
S = "${RUSTSRC}/src/tools/cargo"
|
||||
CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor"
|
||||
# Used in libgit2-sys's build.rs, needed for pkg-config to be used
|
||||
export LIBGIT2_SYS_USE_PKG_CONFIG = "1"
|
||||
|
||||
inherit cargo
|
||||
# cargo's configure doesn't recognize --disable-static, so remove it.
|
||||
DISABLE_STATIC = ""
|
||||
|
||||
do_cargo_setup_snapshot () {
|
||||
${WORKDIR}/rust-snapshot-components/${CARGO_SNAPSHOT}/install.sh --prefix="${WORKDIR}/${CARGO_SNAPSHOT}" --disable-ldconfig
|
||||
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
|
||||
}
|
||||
|
||||
addtask cargo_setup_snapshot after do_unpack before do_configure
|
||||
do_cargo_setup_snapshot[dirs] += "${WORKDIR}/${CARGO_SNAPSHOT}"
|
||||
do_compile () {
|
||||
oe_cargo_fix_env
|
||||
|
||||
do_compile_prepend () {
|
||||
export RUSTC_BOOTSTRAP="1"
|
||||
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 () {
|
||||
install -d "${D}${bindir}"
|
||||
install -m 755 "${B}/target/${CARGO_TARGET_SUBDIR}/cargo" "${D}${bindir}"
|
||||
oe_runmake prepare-image-${TARGET_SYS} IMGDIR_${TARGET_SYS}="${D}${prefix}"
|
||||
}
|
||||
|
||||
# Disabled due to incompatibility with libgit2 0.28.x (https://github.com/rust-lang/git2-rs/issues/458, https://bugs.gentoo.org/707746#c1)
|
||||
# as shipped by Yocto Dunfell.
|
||||
# According to https://github.com/rust-lang/git2-rs/issues/458#issuecomment-522567539, there are no compatibility guarantees between
|
||||
# libgit2-sys and arbitrary system libgit2 versions, so better keep this turned off.
|
||||
#export LIBGIT2_SYS_USE_PKG_CONFIG = "1"
|
||||
|
||||
# Needed for pkg-config to be used
|
||||
export LIBSSH2_SYS_USE_PKG_CONFIG = "1"
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
||||
# When building cargo-native we don't have cargo-native to use and depend on,
|
||||
# so we must use the locally set up snapshot to bootstrap the build.
|
||||
BASEDEPENDS_remove_class-native = "cargo-native"
|
||||
CARGO_class-native = "${WORKDIR}/${CARGO_SNAPSHOT}/bin/cargo"
|
||||
BBCLASSEXTEND = "native"
|
||||
|
||||
105
recipes-devtools/cargo/cargo_0.11.0.bb
Normal file
105
recipes-devtools/cargo/cargo_0.11.0.bb
Normal file
@@ -0,0 +1,105 @@
|
||||
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"
|
||||
86
recipes-devtools/cargo/cargo_0.13.0.bb
Normal file
86
recipes-devtools/cargo/cargo_0.13.0.bb
Normal file
@@ -0,0 +1,86 @@
|
||||
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 \
|
||||
"
|
||||
@@ -1,7 +0,0 @@
|
||||
require recipes-devtools/rust/rust-source-${PV}.inc
|
||||
require recipes-devtools/rust/rust-snapshot-${PV}.inc
|
||||
require cargo.inc
|
||||
|
||||
SRC_URI += "file://riscv-march.patch;patchdir=../../.."
|
||||
SRC_URI += "file://rv64gc.patch;patchdir=../../.."
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
require recipes-devtools/rust/rust-source-${PV}.inc
|
||||
require recipes-devtools/rust/rust-snapshot-${PV}.inc
|
||||
require cargo.inc
|
||||
|
||||
SRC_URI += "file://riscv-march.patch;patchdir=../../.."
|
||||
SRC_URI += "file://rv64gc.patch;patchdir=../../.."
|
||||
@@ -0,0 +1,88 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
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
|
||||
|
||||
39
recipes-devtools/rust/compiler-rt_1.10.0.bb
Normal file
39
recipes-devtools/rust/compiler-rt_1.10.0.bb
Normal file
@@ -0,0 +1,39 @@
|
||||
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"
|
||||
31
recipes-devtools/rust/compiler-rt_1.12.1.bb
Normal file
31
recipes-devtools/rust/compiler-rt_1.12.1.bb
Normal file
@@ -0,0 +1,31 @@
|
||||
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"
|
||||
@@ -1,904 +0,0 @@
|
||||
From 23aa6dfba4f2745800d89f9ee67d390465c76bfa Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 17 Feb 2021 00:32:57 -0800
|
||||
Subject: [PATCH 1/4] Add base definitions for riscv64 + musl
|
||||
|
||||
https://github.com/rust-lang/libc/pull/1994/commits/030a07761f61f3293d53752e60edbd330a9d718d
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
.../src/unix/linux_like/linux/musl/b64/mod.rs | 3 +
|
||||
.../linux_like/linux/musl/b64/riscv64/mod.rs | 867 ++++++++++++++++++
|
||||
2 files changed, 870 insertions(+)
|
||||
create mode 100644 vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
|
||||
|
||||
diff --git a/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs b/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs
|
||||
index 62abee00d..78e805b15 100644
|
||||
--- a/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs
|
||||
+++ b/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs
|
||||
@@ -164,6 +164,9 @@ cfg_if! {
|
||||
} else if #[cfg(any(target_arch = "x86_64"))] {
|
||||
mod x86_64;
|
||||
pub use self::x86_64::*;
|
||||
+ } else if #[cfg(any(target_arch = "riscv64"))] {
|
||||
+ mod riscv64;
|
||||
+ pub use self::riscv64::*;
|
||||
} else {
|
||||
// Unknown target_arch
|
||||
}
|
||||
diff --git a/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
|
||||
new file mode 100644
|
||||
index 000000000..14bae11d0
|
||||
--- /dev/null
|
||||
+++ b/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
|
||||
@@ -0,0 +1,867 @@
|
||||
+//! RISC-V-specific definitions for 64-bit linux-like values
|
||||
+
|
||||
+pub type c_char = u8;
|
||||
+pub type c_long = i64;
|
||||
+pub type c_ulong = u64;
|
||||
+pub type wchar_t = ::c_int;
|
||||
+
|
||||
+pub type nlink_t = ::c_uint;
|
||||
+pub type blksize_t = ::c_int;
|
||||
+pub type fsblkcnt64_t = ::c_ulong;
|
||||
+pub type fsfilcnt64_t = ::c_ulong;
|
||||
+pub type suseconds_t = i64;
|
||||
+pub type __u64 = ::c_ulonglong;
|
||||
+
|
||||
+s! {
|
||||
+ pub struct pthread_attr_t {
|
||||
+ __size: [::c_ulong; 7],
|
||||
+ }
|
||||
+
|
||||
+ pub struct stat {
|
||||
+ pub st_dev: ::dev_t,
|
||||
+ pub st_ino: ::ino_t,
|
||||
+ pub st_mode: ::mode_t,
|
||||
+ pub st_nlink: ::nlink_t,
|
||||
+ pub st_uid: ::uid_t,
|
||||
+ pub st_gid: ::gid_t,
|
||||
+ pub st_rdev: ::dev_t,
|
||||
+ pub __pad1: ::dev_t,
|
||||
+ pub st_size: ::off_t,
|
||||
+ pub st_blksize: ::blksize_t,
|
||||
+ pub __pad2: ::c_int,
|
||||
+ pub st_blocks: ::blkcnt_t,
|
||||
+ pub st_atime: ::time_t,
|
||||
+ pub st_atime_nsec: ::c_long,
|
||||
+ pub st_mtime: ::time_t,
|
||||
+ pub st_mtime_nsec: ::c_long,
|
||||
+ pub st_ctime: ::time_t,
|
||||
+ pub st_ctime_nsec: ::c_long,
|
||||
+ __unused: [::c_int; 2usize],
|
||||
+ }
|
||||
+
|
||||
+ pub struct stat64 {
|
||||
+ pub st_dev: ::dev_t,
|
||||
+ pub st_ino: ::ino64_t,
|
||||
+ pub st_mode: ::mode_t,
|
||||
+ pub st_nlink: ::nlink_t,
|
||||
+ pub st_uid: ::uid_t,
|
||||
+ pub st_gid: ::gid_t,
|
||||
+ pub st_rdev: ::dev_t,
|
||||
+ pub __pad1: ::dev_t,
|
||||
+ pub st_size: ::off64_t,
|
||||
+ pub st_blksize: ::blksize_t,
|
||||
+ pub __pad2: ::c_int,
|
||||
+ pub st_blocks: ::blkcnt_t,
|
||||
+ pub st_atime: ::time_t,
|
||||
+ pub st_atime_nsec: ::c_long,
|
||||
+ pub st_mtime: ::time_t,
|
||||
+ pub st_mtime_nsec: ::c_long,
|
||||
+ pub st_ctime: ::time_t,
|
||||
+ pub st_ctime_nsec: ::c_long,
|
||||
+ __unused: [::c_int; 2],
|
||||
+ }
|
||||
+
|
||||
+ pub struct statfs {
|
||||
+ pub f_type: ::c_long,
|
||||
+ pub f_bsize: ::c_long,
|
||||
+ pub f_blocks: ::fsblkcnt_t,
|
||||
+ pub f_bfree: ::fsblkcnt_t,
|
||||
+ pub f_bavail: ::fsblkcnt_t,
|
||||
+ pub f_files: ::fsfilcnt_t,
|
||||
+ pub f_ffree: ::fsfilcnt_t,
|
||||
+ pub f_fsid: ::fsid_t,
|
||||
+ pub f_namelen: ::c_long,
|
||||
+ pub f_frsize: ::c_long,
|
||||
+ pub f_flags: ::c_long,
|
||||
+ pub f_spare: [::c_long; 4],
|
||||
+ }
|
||||
+
|
||||
+ pub struct statfs64 {
|
||||
+ pub f_type: ::c_long,
|
||||
+ pub f_bsize: ::c_long,
|
||||
+ pub f_blocks: ::fsblkcnt64_t,
|
||||
+ pub f_bfree: ::fsblkcnt64_t,
|
||||
+ pub f_bavail: ::fsblkcnt64_t,
|
||||
+ pub f_files: ::fsfilcnt64_t,
|
||||
+ pub f_ffree: ::fsfilcnt64_t,
|
||||
+ pub f_fsid: ::fsid_t,
|
||||
+ pub f_namelen: ::c_long,
|
||||
+ pub f_frsize: ::c_long,
|
||||
+ pub f_flags: ::c_long,
|
||||
+ pub f_spare: [::c_long; 4],
|
||||
+ }
|
||||
+
|
||||
+ pub struct statvfs {
|
||||
+ pub f_bsize: ::c_ulong,
|
||||
+ pub f_frsize: ::c_ulong,
|
||||
+ pub f_blocks: ::fsblkcnt_t,
|
||||
+ pub f_bfree: ::fsblkcnt_t,
|
||||
+ pub f_bavail: ::fsblkcnt_t,
|
||||
+ pub f_files: ::fsfilcnt_t,
|
||||
+ pub f_ffree: ::fsfilcnt_t,
|
||||
+ pub f_favail: ::fsfilcnt_t,
|
||||
+ pub f_fsid: ::c_ulong,
|
||||
+ pub f_flag: ::c_ulong,
|
||||
+ pub f_namemax: ::c_ulong,
|
||||
+ pub __f_spare: [::c_int; 6],
|
||||
+ }
|
||||
+
|
||||
+ pub struct statvfs64 {
|
||||
+ pub f_bsize: ::c_ulong,
|
||||
+ pub f_frsize: ::c_ulong,
|
||||
+ pub f_blocks: ::fsblkcnt64_t,
|
||||
+ pub f_bfree: ::fsblkcnt64_t,
|
||||
+ pub f_bavail: ::fsblkcnt64_t,
|
||||
+ pub f_files: ::fsfilcnt64_t,
|
||||
+ pub f_ffree: ::fsfilcnt64_t,
|
||||
+ pub f_favail: ::fsfilcnt64_t,
|
||||
+ pub f_fsid: ::c_ulong,
|
||||
+ pub f_flag: ::c_ulong,
|
||||
+ pub f_namemax: ::c_ulong,
|
||||
+ pub __f_spare: [::c_int; 6],
|
||||
+ }
|
||||
+
|
||||
+ pub struct siginfo_t {
|
||||
+ pub si_signo: ::c_int,
|
||||
+ pub si_errno: ::c_int,
|
||||
+ pub si_code: ::c_int,
|
||||
+ #[doc(hidden)]
|
||||
+ #[deprecated(
|
||||
+ since="0.2.54",
|
||||
+ note="Please leave a comment on \
|
||||
+ https://github.com/rust-lang/libc/pull/1316 if you're using \
|
||||
+ this field"
|
||||
+ )]
|
||||
+ pub _pad: [::c_int; 29],
|
||||
+ _align: [u64; 0],
|
||||
+ }
|
||||
+
|
||||
+ pub struct stack_t {
|
||||
+ pub ss_sp: *mut ::c_void,
|
||||
+ pub ss_flags: ::c_int,
|
||||
+ pub ss_size: ::size_t,
|
||||
+ }
|
||||
+
|
||||
+ pub struct sigaction {
|
||||
+ pub sa_sigaction: ::sighandler_t,
|
||||
+ pub sa_mask: ::sigset_t,
|
||||
+ pub sa_flags: ::c_int,
|
||||
+ pub sa_restorer: ::Option<unsafe extern "C" fn()>,
|
||||
+ }
|
||||
+
|
||||
+ pub struct ipc_perm {
|
||||
+ pub __key: ::key_t,
|
||||
+ pub uid: ::uid_t,
|
||||
+ pub gid: ::gid_t,
|
||||
+ pub cuid: ::uid_t,
|
||||
+ pub cgid: ::gid_t,
|
||||
+ pub mode: ::c_ushort,
|
||||
+ __pad1: ::c_ushort,
|
||||
+ pub __seq: ::c_ushort,
|
||||
+ __pad2: ::c_ushort,
|
||||
+ __unused1: ::c_ulong,
|
||||
+ __unused2: ::c_ulong,
|
||||
+ }
|
||||
+
|
||||
+ pub struct shmid_ds {
|
||||
+ pub shm_perm: ::ipc_perm,
|
||||
+ pub shm_segsz: ::size_t,
|
||||
+ pub shm_atime: ::time_t,
|
||||
+ pub shm_dtime: ::time_t,
|
||||
+ pub shm_ctime: ::time_t,
|
||||
+ pub shm_cpid: ::pid_t,
|
||||
+ pub shm_lpid: ::pid_t,
|
||||
+ pub shm_nattch: ::shmatt_t,
|
||||
+ __unused5: ::c_ulong,
|
||||
+ __unused6: ::c_ulong,
|
||||
+ }
|
||||
+
|
||||
+ pub struct flock {
|
||||
+ pub l_type: ::c_short,
|
||||
+ pub l_whence: ::c_short,
|
||||
+ pub l_start: ::off_t,
|
||||
+ pub l_len: ::off_t,
|
||||
+ pub l_pid: ::pid_t,
|
||||
+ }
|
||||
+
|
||||
+ pub struct flock64 {
|
||||
+ pub l_type: ::c_short,
|
||||
+ pub l_whence: ::c_short,
|
||||
+ pub l_start: ::off64_t,
|
||||
+ pub l_len: ::off64_t,
|
||||
+ pub l_pid: ::pid_t,
|
||||
+ }
|
||||
+
|
||||
+ pub struct ip_mreqn {
|
||||
+ pub imr_multiaddr: ::in_addr,
|
||||
+ pub imr_address: ::in_addr,
|
||||
+ pub imr_ifindex: ::c_int,
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+pub const POSIX_FADV_DONTNEED: ::c_int = 4;
|
||||
+pub const POSIX_FADV_NOREUSE: ::c_int = 5;
|
||||
+pub const VEOF: usize = 4;
|
||||
+pub const RTLD_DEEPBIND: ::c_int = 0x8;
|
||||
+pub const RTLD_GLOBAL: ::c_int = 0x100;
|
||||
+pub const RTLD_NOLOAD: ::c_int = 0x4;
|
||||
+pub const TIOCGSOFTCAR: ::c_ulong = 21529;
|
||||
+pub const TIOCSSOFTCAR: ::c_ulong = 21530;
|
||||
+pub const TIOCGRS485: ::c_int = 21550;
|
||||
+pub const TIOCSRS485: ::c_int = 21551;
|
||||
+pub const RLIMIT_RSS: ::__rlimit_resource_t = 5;
|
||||
+pub const RLIMIT_AS: ::__rlimit_resource_t = 9;
|
||||
+pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8;
|
||||
+pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7;
|
||||
+pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6;
|
||||
+pub const O_APPEND: ::c_int = 1024;
|
||||
+pub const O_CREAT: ::c_int = 64;
|
||||
+pub const O_EXCL: ::c_int = 128;
|
||||
+pub const O_NOCTTY: ::c_int = 256;
|
||||
+pub const O_NONBLOCK: ::c_int = 2048;
|
||||
+pub const O_SYNC: ::c_int = 1052672;
|
||||
+pub const O_RSYNC: ::c_int = 1052672;
|
||||
+pub const O_DSYNC: ::c_int = 4096;
|
||||
+pub const O_FSYNC: ::c_int = 1052672;
|
||||
+pub const O_NOATIME: ::c_int = 262144;
|
||||
+pub const O_PATH: ::c_int = 2097152;
|
||||
+pub const O_TMPFILE: ::c_int = 4259840;
|
||||
+pub const MAP_GROWSDOWN: ::c_int = 256;
|
||||
+pub const EDEADLK: ::c_int = 35;
|
||||
+pub const ENAMETOOLONG: ::c_int = 36;
|
||||
+pub const ENOLCK: ::c_int = 37;
|
||||
+pub const ENOSYS: ::c_int = 38;
|
||||
+pub const ENOTEMPTY: ::c_int = 39;
|
||||
+pub const ELOOP: ::c_int = 40;
|
||||
+pub const ENOMSG: ::c_int = 42;
|
||||
+pub const EIDRM: ::c_int = 43;
|
||||
+pub const ECHRNG: ::c_int = 44;
|
||||
+pub const EL2NSYNC: ::c_int = 45;
|
||||
+pub const EL3HLT: ::c_int = 46;
|
||||
+pub const EL3RST: ::c_int = 47;
|
||||
+pub const ELNRNG: ::c_int = 48;
|
||||
+pub const EUNATCH: ::c_int = 49;
|
||||
+pub const ENOCSI: ::c_int = 50;
|
||||
+pub const EL2HLT: ::c_int = 51;
|
||||
+pub const EBADE: ::c_int = 52;
|
||||
+pub const EBADR: ::c_int = 53;
|
||||
+pub const EXFULL: ::c_int = 54;
|
||||
+pub const ENOANO: ::c_int = 55;
|
||||
+pub const EBADRQC: ::c_int = 56;
|
||||
+pub const EBADSLT: ::c_int = 57;
|
||||
+pub const EMULTIHOP: ::c_int = 72;
|
||||
+pub const EOVERFLOW: ::c_int = 75;
|
||||
+pub const ENOTUNIQ: ::c_int = 76;
|
||||
+pub const EBADFD: ::c_int = 77;
|
||||
+pub const EBADMSG: ::c_int = 74;
|
||||
+pub const EREMCHG: ::c_int = 78;
|
||||
+pub const ELIBACC: ::c_int = 79;
|
||||
+pub const ELIBBAD: ::c_int = 80;
|
||||
+pub const ELIBSCN: ::c_int = 81;
|
||||
+pub const ELIBMAX: ::c_int = 82;
|
||||
+pub const ELIBEXEC: ::c_int = 83;
|
||||
+pub const EILSEQ: ::c_int = 84;
|
||||
+pub const ERESTART: ::c_int = 85;
|
||||
+pub const ESTRPIPE: ::c_int = 86;
|
||||
+pub const EUSERS: ::c_int = 87;
|
||||
+pub const ENOTSOCK: ::c_int = 88;
|
||||
+pub const EDESTADDRREQ: ::c_int = 89;
|
||||
+pub const EMSGSIZE: ::c_int = 90;
|
||||
+pub const EPROTOTYPE: ::c_int = 91;
|
||||
+pub const ENOPROTOOPT: ::c_int = 92;
|
||||
+pub const EPROTONOSUPPORT: ::c_int = 93;
|
||||
+pub const ESOCKTNOSUPPORT: ::c_int = 94;
|
||||
+pub const EOPNOTSUPP: ::c_int = 95;
|
||||
+pub const EPFNOSUPPORT: ::c_int = 96;
|
||||
+pub const EAFNOSUPPORT: ::c_int = 97;
|
||||
+pub const EADDRINUSE: ::c_int = 98;
|
||||
+pub const EADDRNOTAVAIL: ::c_int = 99;
|
||||
+pub const ENETDOWN: ::c_int = 100;
|
||||
+pub const ENETUNREACH: ::c_int = 101;
|
||||
+pub const ENETRESET: ::c_int = 102;
|
||||
+pub const ECONNABORTED: ::c_int = 103;
|
||||
+pub const ECONNRESET: ::c_int = 104;
|
||||
+pub const ENOBUFS: ::c_int = 105;
|
||||
+pub const EISCONN: ::c_int = 106;
|
||||
+pub const ENOTCONN: ::c_int = 107;
|
||||
+pub const ESHUTDOWN: ::c_int = 108;
|
||||
+pub const ETOOMANYREFS: ::c_int = 109;
|
||||
+pub const ETIMEDOUT: ::c_int = 110;
|
||||
+pub const ECONNREFUSED: ::c_int = 111;
|
||||
+pub const EHOSTDOWN: ::c_int = 112;
|
||||
+pub const EHOSTUNREACH: ::c_int = 113;
|
||||
+pub const EALREADY: ::c_int = 114;
|
||||
+pub const EINPROGRESS: ::c_int = 115;
|
||||
+pub const ESTALE: ::c_int = 116;
|
||||
+pub const EDQUOT: ::c_int = 122;
|
||||
+pub const ENOMEDIUM: ::c_int = 123;
|
||||
+pub const EMEDIUMTYPE: ::c_int = 124;
|
||||
+pub const ECANCELED: ::c_int = 125;
|
||||
+pub const ENOKEY: ::c_int = 126;
|
||||
+pub const EKEYEXPIRED: ::c_int = 127;
|
||||
+pub const EKEYREVOKED: ::c_int = 128;
|
||||
+pub const EKEYREJECTED: ::c_int = 129;
|
||||
+pub const EOWNERDEAD: ::c_int = 130;
|
||||
+pub const ENOTRECOVERABLE: ::c_int = 131;
|
||||
+pub const EHWPOISON: ::c_int = 133;
|
||||
+pub const ERFKILL: ::c_int = 132;
|
||||
+pub const SOL_SOCKET: ::c_int = 1;
|
||||
+pub const SO_REUSEADDR: ::c_int = 2;
|
||||
+pub const SO_TYPE: ::c_int = 3;
|
||||
+pub const SO_ERROR: ::c_int = 4;
|
||||
+pub const SO_DONTROUTE: ::c_int = 5;
|
||||
+pub const SO_BROADCAST: ::c_int = 6;
|
||||
+pub const SO_SNDBUF: ::c_int = 7;
|
||||
+pub const SO_RCVBUF: ::c_int = 8;
|
||||
+pub const SO_SNDBUFFORCE: ::c_int = 32;
|
||||
+pub const SO_RCVBUFFORCE: ::c_int = 33;
|
||||
+pub const SO_KEEPALIVE: ::c_int = 9;
|
||||
+pub const SO_OOBINLINE: ::c_int = 10;
|
||||
+pub const SO_NO_CHECK: ::c_int = 11;
|
||||
+pub const SO_PRIORITY: ::c_int = 12;
|
||||
+pub const SO_LINGER: ::c_int = 13;
|
||||
+pub const SO_BSDCOMPAT: ::c_int = 14;
|
||||
+pub const SO_REUSEPORT: ::c_int = 15;
|
||||
+pub const SO_PASSCRED: ::c_int = 16;
|
||||
+pub const SO_PEERCRED: ::c_int = 17;
|
||||
+pub const SO_RCVLOWAT: ::c_int = 18;
|
||||
+pub const SO_SNDLOWAT: ::c_int = 19;
|
||||
+pub const SO_RCVTIMEO: ::c_int = 20;
|
||||
+pub const SO_SNDTIMEO: ::c_int = 21;
|
||||
+pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22;
|
||||
+pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23;
|
||||
+pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24;
|
||||
+pub const SO_BINDTODEVICE: ::c_int = 25;
|
||||
+pub const SO_ATTACH_FILTER: ::c_int = 26;
|
||||
+pub const SO_DETACH_FILTER: ::c_int = 27;
|
||||
+pub const SO_GET_FILTER: ::c_int = 26;
|
||||
+pub const SO_PEERNAME: ::c_int = 28;
|
||||
+pub const SO_TIMESTAMP: ::c_int = 29;
|
||||
+pub const SO_ACCEPTCONN: ::c_int = 30;
|
||||
+pub const SO_PEERSEC: ::c_int = 31;
|
||||
+pub const SO_PASSSEC: ::c_int = 34;
|
||||
+pub const SO_TIMESTAMPNS: ::c_int = 35;
|
||||
+pub const SCM_TIMESTAMPNS: ::c_int = 35;
|
||||
+pub const SO_MARK: ::c_int = 36;
|
||||
+pub const SO_PROTOCOL: ::c_int = 38;
|
||||
+pub const SO_DOMAIN: ::c_int = 39;
|
||||
+pub const SO_RXQ_OVFL: ::c_int = 40;
|
||||
+pub const SO_WIFI_STATUS: ::c_int = 41;
|
||||
+pub const SCM_WIFI_STATUS: ::c_int = 41;
|
||||
+pub const SO_PEEK_OFF: ::c_int = 42;
|
||||
+pub const SO_NOFCS: ::c_int = 43;
|
||||
+pub const SO_LOCK_FILTER: ::c_int = 44;
|
||||
+pub const SO_SELECT_ERR_QUEUE: ::c_int = 45;
|
||||
+pub const SO_BUSY_POLL: ::c_int = 46;
|
||||
+pub const SO_MAX_PACING_RATE: ::c_int = 47;
|
||||
+pub const SO_BPF_EXTENSIONS: ::c_int = 48;
|
||||
+pub const SO_INCOMING_CPU: ::c_int = 49;
|
||||
+pub const SO_ATTACH_BPF: ::c_int = 50;
|
||||
+pub const SO_DETACH_BPF: ::c_int = 27;
|
||||
+pub const SOCK_STREAM: ::c_int = 1;
|
||||
+pub const SOCK_DGRAM: ::c_int = 2;
|
||||
+pub const SA_ONSTACK: ::c_int = 134217728;
|
||||
+pub const SA_SIGINFO: ::c_int = 4;
|
||||
+pub const SA_NOCLDWAIT: ::c_int = 2;
|
||||
+pub const SIGTTIN: ::c_int = 21;
|
||||
+pub const SIGTTOU: ::c_int = 22;
|
||||
+pub const SIGXCPU: ::c_int = 24;
|
||||
+pub const SIGXFSZ: ::c_int = 25;
|
||||
+pub const SIGVTALRM: ::c_int = 26;
|
||||
+pub const SIGPROF: ::c_int = 27;
|
||||
+pub const SIGWINCH: ::c_int = 28;
|
||||
+pub const SIGCHLD: ::c_int = 17;
|
||||
+pub const SIGBUS: ::c_int = 7;
|
||||
+pub const SIGUSR1: ::c_int = 10;
|
||||
+pub const SIGUSR2: ::c_int = 12;
|
||||
+pub const SIGCONT: ::c_int = 18;
|
||||
+pub const SIGSTOP: ::c_int = 19;
|
||||
+pub const SIGTSTP: ::c_int = 20;
|
||||
+pub const SIGURG: ::c_int = 23;
|
||||
+pub const SIGIO: ::c_int = 29;
|
||||
+pub const SIGSYS: ::c_int = 31;
|
||||
+pub const SIGSTKFLT: ::c_int = 16;
|
||||
+pub const SIGPOLL: ::c_int = 29;
|
||||
+pub const SIGPWR: ::c_int = 30;
|
||||
+pub const SIG_SETMASK: ::c_int = 2;
|
||||
+pub const SIG_BLOCK: ::c_int = 0;
|
||||
+pub const SIG_UNBLOCK: ::c_int = 1;
|
||||
+pub const POLLWRNORM: ::c_short = 256;
|
||||
+pub const POLLWRBAND: ::c_short = 512;
|
||||
+pub const O_ASYNC: ::c_int = 8192;
|
||||
+pub const O_NDELAY: ::c_int = 2048;
|
||||
+pub const PTRACE_DETACH: ::c_uint = 17;
|
||||
+pub const EFD_NONBLOCK: ::c_int = 2048;
|
||||
+pub const F_GETLK: ::c_int = 5;
|
||||
+pub const F_GETOWN: ::c_int = 9;
|
||||
+pub const F_SETOWN: ::c_int = 8;
|
||||
+pub const F_SETLK: ::c_int = 6;
|
||||
+pub const F_SETLKW: ::c_int = 7;
|
||||
+pub const F_RDLCK: ::c_int = 0;
|
||||
+pub const F_WRLCK: ::c_int = 1;
|
||||
+pub const F_UNLCK: ::c_int = 2;
|
||||
+pub const F_OFD_GETLK: ::c_int = 36;
|
||||
+pub const F_OFD_SETLK: ::c_int = 37;
|
||||
+pub const F_OFD_SETLKW: ::c_int = 38;
|
||||
+pub const SFD_NONBLOCK: ::c_int = 2048;
|
||||
+pub const TCSANOW: ::c_int = 0;
|
||||
+pub const TCSADRAIN: ::c_int = 1;
|
||||
+pub const TCSAFLUSH: ::c_int = 2;
|
||||
+pub const TIOCLINUX: ::c_ulong = 21532;
|
||||
+pub const TIOCGSERIAL: ::c_ulong = 21534;
|
||||
+pub const TIOCEXCL: ::c_ulong = 21516;
|
||||
+pub const TIOCNXCL: ::c_ulong = 21517;
|
||||
+pub const TIOCSCTTY: ::c_ulong = 21518;
|
||||
+pub const TIOCSTI: ::c_ulong = 21522;
|
||||
+pub const TIOCMGET: ::c_ulong = 21525;
|
||||
+pub const TIOCMBIS: ::c_ulong = 21526;
|
||||
+pub const TIOCMBIC: ::c_ulong = 21527;
|
||||
+pub const TIOCMSET: ::c_ulong = 21528;
|
||||
+pub const TIOCCONS: ::c_ulong = 21533;
|
||||
+pub const TIOCM_ST: ::c_int = 8;
|
||||
+pub const TIOCM_SR: ::c_int = 16;
|
||||
+pub const TIOCM_CTS: ::c_int = 32;
|
||||
+pub const TIOCM_CAR: ::c_int = 64;
|
||||
+pub const TIOCM_RNG: ::c_int = 128;
|
||||
+pub const TIOCM_DSR: ::c_int = 256;
|
||||
+pub const SFD_CLOEXEC: ::c_int = 524288;
|
||||
+pub const NCCS: usize = 32;
|
||||
+pub const O_TRUNC: ::c_int = 512;
|
||||
+pub const O_CLOEXEC: ::c_int = 524288;
|
||||
+pub const EBFONT: ::c_int = 59;
|
||||
+pub const ENOSTR: ::c_int = 60;
|
||||
+pub const ENODATA: ::c_int = 61;
|
||||
+pub const ETIME: ::c_int = 62;
|
||||
+pub const ENOSR: ::c_int = 63;
|
||||
+pub const ENONET: ::c_int = 64;
|
||||
+pub const ENOPKG: ::c_int = 65;
|
||||
+pub const EREMOTE: ::c_int = 66;
|
||||
+pub const ENOLINK: ::c_int = 67;
|
||||
+pub const EADV: ::c_int = 68;
|
||||
+pub const ESRMNT: ::c_int = 69;
|
||||
+pub const ECOMM: ::c_int = 70;
|
||||
+pub const EPROTO: ::c_int = 71;
|
||||
+pub const EDOTDOT: ::c_int = 73;
|
||||
+pub const SA_NODEFER: ::c_int = 1073741824;
|
||||
+pub const SA_RESETHAND: ::c_int = -2147483648;
|
||||
+pub const SA_RESTART: ::c_int = 268435456;
|
||||
+pub const SA_NOCLDSTOP: ::c_int = 1;
|
||||
+pub const EPOLL_CLOEXEC: ::c_int = 524288;
|
||||
+pub const EFD_CLOEXEC: ::c_int = 524288;
|
||||
+pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
|
||||
+pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
|
||||
+pub const O_DIRECT: ::c_int = 16384;
|
||||
+pub const O_DIRECTORY: ::c_int = 65536;
|
||||
+pub const O_NOFOLLOW: ::c_int = 131072;
|
||||
+pub const MAP_HUGETLB: ::c_int = 262144;
|
||||
+pub const MAP_LOCKED: ::c_int = 8192;
|
||||
+pub const MAP_NORESERVE: ::c_int = 16384;
|
||||
+pub const MAP_ANON: ::c_int = 32;
|
||||
+pub const MAP_ANONYMOUS: ::c_int = 32;
|
||||
+pub const MAP_DENYWRITE: ::c_int = 2048;
|
||||
+pub const MAP_EXECUTABLE: ::c_int = 4096;
|
||||
+pub const MAP_POPULATE: ::c_int = 32768;
|
||||
+pub const MAP_NONBLOCK: ::c_int = 65536;
|
||||
+pub const MAP_STACK: ::c_int = 131072;
|
||||
+pub const MAP_SYNC : ::c_int = 0x080000;
|
||||
+pub const EDEADLOCK: ::c_int = 35;
|
||||
+pub const EUCLEAN: ::c_int = 117;
|
||||
+pub const ENOTNAM: ::c_int = 118;
|
||||
+pub const ENAVAIL: ::c_int = 119;
|
||||
+pub const EISNAM: ::c_int = 120;
|
||||
+pub const EREMOTEIO: ::c_int = 121;
|
||||
+pub const FIOCLEX: ::c_ulong = 21585;
|
||||
+pub const FIONCLEX: ::c_ulong = 21584;
|
||||
+pub const FIONBIO: ::c_ulong = 21537;
|
||||
+pub const MCL_CURRENT: ::c_int = 1;
|
||||
+pub const MCL_FUTURE: ::c_int = 2;
|
||||
+pub const SIGSTKSZ: ::size_t = 8192;
|
||||
+pub const MINSIGSTKSZ: ::size_t = 2048;
|
||||
+pub const CBAUD: ::tcflag_t = 4111;
|
||||
+pub const TAB1: ::tcflag_t = 2048;
|
||||
+pub const TAB2: ::tcflag_t = 4096;
|
||||
+pub const TAB3: ::tcflag_t = 6144;
|
||||
+pub const CR1: ::tcflag_t = 512;
|
||||
+pub const CR2: ::tcflag_t = 1024;
|
||||
+pub const CR3: ::tcflag_t = 1536;
|
||||
+pub const FF1: ::tcflag_t = 32768;
|
||||
+pub const BS1: ::tcflag_t = 8192;
|
||||
+pub const VT1: ::tcflag_t = 16384;
|
||||
+pub const VWERASE: usize = 14;
|
||||
+pub const VREPRINT: usize = 12;
|
||||
+pub const VSUSP: usize = 10;
|
||||
+pub const VSTART: usize = 8;
|
||||
+pub const VSTOP: usize = 9;
|
||||
+pub const VDISCARD: usize = 13;
|
||||
+pub const VTIME: usize = 5;
|
||||
+pub const IXON: ::tcflag_t = 1024;
|
||||
+pub const IXOFF: ::tcflag_t = 4096;
|
||||
+pub const ONLCR: ::tcflag_t = 4;
|
||||
+pub const CSIZE: ::tcflag_t = 48;
|
||||
+pub const CS6: ::tcflag_t = 16;
|
||||
+pub const CS7: ::tcflag_t = 32;
|
||||
+pub const CS8: ::tcflag_t = 48;
|
||||
+pub const CSTOPB: ::tcflag_t = 64;
|
||||
+pub const CREAD: ::tcflag_t = 128;
|
||||
+pub const PARENB: ::tcflag_t = 256;
|
||||
+pub const PARODD: ::tcflag_t = 512;
|
||||
+pub const HUPCL: ::tcflag_t = 1024;
|
||||
+pub const CLOCAL: ::tcflag_t = 2048;
|
||||
+pub const ECHOKE: ::tcflag_t = 2048;
|
||||
+pub const ECHOE: ::tcflag_t = 16;
|
||||
+pub const ECHOK: ::tcflag_t = 32;
|
||||
+pub const ECHONL: ::tcflag_t = 64;
|
||||
+pub const ECHOPRT: ::tcflag_t = 1024;
|
||||
+pub const ECHOCTL: ::tcflag_t = 512;
|
||||
+pub const ISIG: ::tcflag_t = 1;
|
||||
+pub const ICANON: ::tcflag_t = 2;
|
||||
+pub const PENDIN: ::tcflag_t = 16384;
|
||||
+pub const NOFLSH: ::tcflag_t = 128;
|
||||
+pub const CIBAUD: ::tcflag_t = 269418496;
|
||||
+pub const CBAUDEX: ::tcflag_t = 4096;
|
||||
+pub const VSWTC: usize = 7;
|
||||
+pub const OLCUC: ::tcflag_t = 2;
|
||||
+pub const NLDLY: ::tcflag_t = 256;
|
||||
+pub const CRDLY: ::tcflag_t = 1536;
|
||||
+pub const TABDLY: ::tcflag_t = 6144;
|
||||
+pub const BSDLY: ::tcflag_t = 8192;
|
||||
+pub const FFDLY: ::tcflag_t = 32768;
|
||||
+pub const VTDLY: ::tcflag_t = 16384;
|
||||
+pub const XTABS: ::tcflag_t = 6144;
|
||||
+pub const B0: ::speed_t = 0;
|
||||
+pub const B50: ::speed_t = 1;
|
||||
+pub const B75: ::speed_t = 2;
|
||||
+pub const B110: ::speed_t = 3;
|
||||
+pub const B134: ::speed_t = 4;
|
||||
+pub const B150: ::speed_t = 5;
|
||||
+pub const B200: ::speed_t = 6;
|
||||
+pub const B300: ::speed_t = 7;
|
||||
+pub const B600: ::speed_t = 8;
|
||||
+pub const B1200: ::speed_t = 9;
|
||||
+pub const B1800: ::speed_t = 10;
|
||||
+pub const B2400: ::speed_t = 11;
|
||||
+pub const B4800: ::speed_t = 12;
|
||||
+pub const B9600: ::speed_t = 13;
|
||||
+pub const B19200: ::speed_t = 14;
|
||||
+pub const B38400: ::speed_t = 15;
|
||||
+pub const EXTA: ::speed_t = 14;
|
||||
+pub const EXTB: ::speed_t = 15;
|
||||
+pub const B57600: ::speed_t = 4097;
|
||||
+pub const B115200: ::speed_t = 4098;
|
||||
+pub const B230400: ::speed_t = 4099;
|
||||
+pub const B460800: ::speed_t = 4100;
|
||||
+pub const B500000: ::speed_t = 4101;
|
||||
+pub const B576000: ::speed_t = 4102;
|
||||
+pub const B921600: ::speed_t = 4103;
|
||||
+pub const B1000000: ::speed_t = 4104;
|
||||
+pub const B1152000: ::speed_t = 4105;
|
||||
+pub const B1500000: ::speed_t = 4106;
|
||||
+pub const B2000000: ::speed_t = 4107;
|
||||
+pub const B2500000: ::speed_t = 4108;
|
||||
+pub const B3000000: ::speed_t = 4109;
|
||||
+pub const B3500000: ::speed_t = 4110;
|
||||
+pub const B4000000: ::speed_t = 4111;
|
||||
+pub const VEOL: usize = 11;
|
||||
+pub const VEOL2: usize = 16;
|
||||
+pub const VMIN: usize = 6;
|
||||
+pub const IEXTEN: ::tcflag_t = 32768;
|
||||
+pub const TOSTOP: ::tcflag_t = 256;
|
||||
+pub const FLUSHO: ::tcflag_t = 4096;
|
||||
+pub const EXTPROC: ::tcflag_t = 65536;
|
||||
+pub const TCGETS: ::c_ulong = 21505;
|
||||
+pub const TCSETS: ::c_ulong = 21506;
|
||||
+pub const TCSETSW: ::c_ulong = 21507;
|
||||
+pub const TCSETSF: ::c_ulong = 21508;
|
||||
+pub const TCGETA: ::c_ulong = 21509;
|
||||
+pub const TCSETA: ::c_ulong = 21510;
|
||||
+pub const TCSETAW: ::c_ulong = 21511;
|
||||
+pub const TCSETAF: ::c_ulong = 21512;
|
||||
+pub const TCSBRK: ::c_ulong = 21513;
|
||||
+pub const TCXONC: ::c_ulong = 21514;
|
||||
+pub const TCFLSH: ::c_ulong = 21515;
|
||||
+pub const TIOCINQ: ::c_ulong = 21531;
|
||||
+pub const TIOCGPGRP: ::c_ulong = 21519;
|
||||
+pub const TIOCSPGRP: ::c_ulong = 21520;
|
||||
+pub const TIOCOUTQ: ::c_ulong = 21521;
|
||||
+pub const TIOCGWINSZ: ::c_ulong = 21523;
|
||||
+pub const TIOCSWINSZ: ::c_ulong = 21524;
|
||||
+pub const FIONREAD: ::c_ulong = 21531;
|
||||
+pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
|
||||
+pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
|
||||
+pub const SYS_read: ::c_long = 63;
|
||||
+pub const SYS_write: ::c_long = 64;
|
||||
+pub const SYS_close: ::c_long = 57;
|
||||
+pub const SYS_fstat: ::c_long = 80;
|
||||
+pub const SYS_lseek: ::c_long = 62;
|
||||
+pub const SYS_mmap: ::c_long = 222;
|
||||
+pub const SYS_mprotect: ::c_long = 226;
|
||||
+pub const SYS_munmap: ::c_long = 215;
|
||||
+pub const SYS_brk: ::c_long = 214;
|
||||
+pub const SYS_rt_sigaction: ::c_long = 134;
|
||||
+pub const SYS_rt_sigprocmask: ::c_long = 135;
|
||||
+pub const SYS_rt_sigreturn: ::c_long = 139;
|
||||
+pub const SYS_ioctl: ::c_long = 29;
|
||||
+pub const SYS_pread64: ::c_long = 67;
|
||||
+pub const SYS_pwrite64: ::c_long = 68;
|
||||
+pub const SYS_readv: ::c_long = 65;
|
||||
+pub const SYS_writev: ::c_long = 66;
|
||||
+pub const SYS_sched_yield: ::c_long = 124;
|
||||
+pub const SYS_mremap: ::c_long = 216;
|
||||
+pub const SYS_msync: ::c_long = 227;
|
||||
+pub const SYS_mincore: ::c_long = 232;
|
||||
+pub const SYS_madvise: ::c_long = 233;
|
||||
+pub const SYS_shmget: ::c_long = 194;
|
||||
+pub const SYS_shmat: ::c_long = 196;
|
||||
+pub const SYS_shmctl: ::c_long = 195;
|
||||
+pub const SYS_dup: ::c_long = 23;
|
||||
+pub const SYS_nanosleep: ::c_long = 101;
|
||||
+pub const SYS_getitimer: ::c_long = 102;
|
||||
+pub const SYS_setitimer: ::c_long = 103;
|
||||
+pub const SYS_getpid: ::c_long = 172;
|
||||
+pub const SYS_sendfile: ::c_long = 71;
|
||||
+pub const SYS_socket: ::c_long = 198;
|
||||
+pub const SYS_connect: ::c_long = 203;
|
||||
+pub const SYS_accept: ::c_long = 202;
|
||||
+pub const SYS_sendto: ::c_long = 206;
|
||||
+pub const SYS_recvfrom: ::c_long = 207;
|
||||
+pub const SYS_sendmsg: ::c_long = 211;
|
||||
+pub const SYS_recvmsg: ::c_long = 212;
|
||||
+pub const SYS_shutdown: ::c_long = 210;
|
||||
+pub const SYS_bind: ::c_long = 200;
|
||||
+pub const SYS_listen: ::c_long = 201;
|
||||
+pub const SYS_getsockname: ::c_long = 204;
|
||||
+pub const SYS_getpeername: ::c_long = 205;
|
||||
+pub const SYS_socketpair: ::c_long = 199;
|
||||
+pub const SYS_setsockopt: ::c_long = 208;
|
||||
+pub const SYS_getsockopt: ::c_long = 209;
|
||||
+pub const SYS_clone: ::c_long = 220;
|
||||
+pub const SYS_execve: ::c_long = 221;
|
||||
+pub const SYS_exit: ::c_long = 93;
|
||||
+pub const SYS_wait4: ::c_long = 260;
|
||||
+pub const SYS_kill: ::c_long = 129;
|
||||
+pub const SYS_uname: ::c_long = 160;
|
||||
+pub const SYS_semget: ::c_long = 190;
|
||||
+pub const SYS_semop: ::c_long = 193;
|
||||
+pub const SYS_semctl: ::c_long = 191;
|
||||
+pub const SYS_shmdt: ::c_long = 197;
|
||||
+pub const SYS_msgget: ::c_long = 186;
|
||||
+pub const SYS_msgsnd: ::c_long = 189;
|
||||
+pub const SYS_msgrcv: ::c_long = 188;
|
||||
+pub const SYS_msgctl: ::c_long = 187;
|
||||
+pub const SYS_fcntl: ::c_long = 25;
|
||||
+pub const SYS_flock: ::c_long = 32;
|
||||
+pub const SYS_fsync: ::c_long = 82;
|
||||
+pub const SYS_fdatasync: ::c_long = 83;
|
||||
+pub const SYS_truncate: ::c_long = 45;
|
||||
+pub const SYS_ftruncate: ::c_long = 46;
|
||||
+pub const SYS_getcwd: ::c_long = 17;
|
||||
+pub const SYS_chdir: ::c_long = 49;
|
||||
+pub const SYS_fchdir: ::c_long = 50;
|
||||
+pub const SYS_fchmod: ::c_long = 52;
|
||||
+pub const SYS_fchown: ::c_long = 55;
|
||||
+pub const SYS_umask: ::c_long = 166;
|
||||
+pub const SYS_gettimeofday: ::c_long = 169;
|
||||
+pub const SYS_getrlimit: ::c_long = 163;
|
||||
+pub const SYS_getrusage: ::c_long = 165;
|
||||
+pub const SYS_sysinfo: ::c_long = 179;
|
||||
+pub const SYS_times: ::c_long = 153;
|
||||
+pub const SYS_ptrace: ::c_long = 117;
|
||||
+pub const SYS_getuid: ::c_long = 174;
|
||||
+pub const SYS_syslog: ::c_long = 116;
|
||||
+pub const SYS_getgid: ::c_long = 176;
|
||||
+pub const SYS_setuid: ::c_long = 146;
|
||||
+pub const SYS_setgid: ::c_long = 144;
|
||||
+pub const SYS_geteuid: ::c_long = 175;
|
||||
+pub const SYS_getegid: ::c_long = 177;
|
||||
+pub const SYS_setpgid: ::c_long = 154;
|
||||
+pub const SYS_getppid: ::c_long = 173;
|
||||
+pub const SYS_setsid: ::c_long = 157;
|
||||
+pub const SYS_setreuid: ::c_long = 145;
|
||||
+pub const SYS_setregid: ::c_long = 143;
|
||||
+pub const SYS_getgroups: ::c_long = 158;
|
||||
+pub const SYS_setgroups: ::c_long = 159;
|
||||
+pub const SYS_setresuid: ::c_long = 147;
|
||||
+pub const SYS_getresuid: ::c_long = 148;
|
||||
+pub const SYS_setresgid: ::c_long = 149;
|
||||
+pub const SYS_getresgid: ::c_long = 150;
|
||||
+pub const SYS_getpgid: ::c_long = 155;
|
||||
+pub const SYS_setfsuid: ::c_long = 151;
|
||||
+pub const SYS_setfsgid: ::c_long = 152;
|
||||
+pub const SYS_getsid: ::c_long = 156;
|
||||
+pub const SYS_capget: ::c_long = 90;
|
||||
+pub const SYS_capset: ::c_long = 91;
|
||||
+pub const SYS_rt_sigpending: ::c_long = 136;
|
||||
+pub const SYS_rt_sigtimedwait: ::c_long = 137;
|
||||
+pub const SYS_rt_sigqueueinfo: ::c_long = 138;
|
||||
+pub const SYS_rt_sigsuspend: ::c_long = 133;
|
||||
+pub const SYS_sigaltstack: ::c_long = 132;
|
||||
+pub const SYS_personality: ::c_long = 92;
|
||||
+pub const SYS_statfs: ::c_long = 43;
|
||||
+pub const SYS_fstatfs: ::c_long = 44;
|
||||
+pub const SYS_getpriority: ::c_long = 141;
|
||||
+pub const SYS_setpriority: ::c_long = 140;
|
||||
+pub const SYS_sched_setparam: ::c_long = 118;
|
||||
+pub const SYS_sched_getparam: ::c_long = 121;
|
||||
+pub const SYS_sched_setscheduler: ::c_long = 119;
|
||||
+pub const SYS_sched_getscheduler: ::c_long = 120;
|
||||
+pub const SYS_sched_get_priority_max: ::c_long = 125;
|
||||
+pub const SYS_sched_get_priority_min: ::c_long = 126;
|
||||
+pub const SYS_sched_rr_get_interval: ::c_long = 127;
|
||||
+pub const SYS_mlock: ::c_long = 228;
|
||||
+pub const SYS_munlock: ::c_long = 229;
|
||||
+pub const SYS_mlockall: ::c_long = 230;
|
||||
+pub const SYS_munlockall: ::c_long = 231;
|
||||
+pub const SYS_vhangup: ::c_long = 58;
|
||||
+pub const SYS_pivot_root: ::c_long = 41;
|
||||
+pub const SYS_prctl: ::c_long = 167;
|
||||
+pub const SYS_adjtimex: ::c_long = 171;
|
||||
+pub const SYS_setrlimit: ::c_long = 164;
|
||||
+pub const SYS_chroot: ::c_long = 51;
|
||||
+pub const SYS_sync: ::c_long = 81;
|
||||
+pub const SYS_acct: ::c_long = 89;
|
||||
+pub const SYS_settimeofday: ::c_long = 170;
|
||||
+pub const SYS_mount: ::c_long = 40;
|
||||
+pub const SYS_umount2: ::c_long = 39;
|
||||
+pub const SYS_swapon: ::c_long = 224;
|
||||
+pub const SYS_swapoff: ::c_long = 225;
|
||||
+pub const SYS_reboot: ::c_long = 142;
|
||||
+pub const SYS_sethostname: ::c_long = 161;
|
||||
+pub const SYS_setdomainname: ::c_long = 162;
|
||||
+pub const SYS_init_module: ::c_long = 105;
|
||||
+pub const SYS_delete_module: ::c_long = 106;
|
||||
+pub const SYS_quotactl: ::c_long = 60;
|
||||
+pub const SYS_nfsservctl: ::c_long = 42;
|
||||
+pub const SYS_gettid: ::c_long = 178;
|
||||
+pub const SYS_readahead: ::c_long = 213;
|
||||
+pub const SYS_setxattr: ::c_long = 5;
|
||||
+pub const SYS_lsetxattr: ::c_long = 6;
|
||||
+pub const SYS_fsetxattr: ::c_long = 7;
|
||||
+pub const SYS_getxattr: ::c_long = 8;
|
||||
+pub const SYS_lgetxattr: ::c_long = 9;
|
||||
+pub const SYS_fgetxattr: ::c_long = 10;
|
||||
+pub const SYS_listxattr: ::c_long = 11;
|
||||
+pub const SYS_llistxattr: ::c_long = 12;
|
||||
+pub const SYS_flistxattr: ::c_long = 13;
|
||||
+pub const SYS_removexattr: ::c_long = 14;
|
||||
+pub const SYS_lremovexattr: ::c_long = 15;
|
||||
+pub const SYS_fremovexattr: ::c_long = 16;
|
||||
+pub const SYS_tkill: ::c_long = 130;
|
||||
+pub const SYS_futex: ::c_long = 98;
|
||||
+pub const SYS_sched_setaffinity: ::c_long = 122;
|
||||
+pub const SYS_sched_getaffinity: ::c_long = 123;
|
||||
+pub const SYS_io_setup: ::c_long = 0;
|
||||
+pub const SYS_io_destroy: ::c_long = 1;
|
||||
+pub const SYS_io_getevents: ::c_long = 4;
|
||||
+pub const SYS_io_submit: ::c_long = 2;
|
||||
+pub const SYS_io_cancel: ::c_long = 3;
|
||||
+pub const SYS_lookup_dcookie: ::c_long = 18;
|
||||
+pub const SYS_remap_file_pages: ::c_long = 234;
|
||||
+pub const SYS_getdents64: ::c_long = 61;
|
||||
+pub const SYS_set_tid_address: ::c_long = 96;
|
||||
+pub const SYS_restart_syscall: ::c_long = 128;
|
||||
+pub const SYS_semtimedop: ::c_long = 192;
|
||||
+pub const SYS_fadvise64: ::c_long = 223;
|
||||
+pub const SYS_timer_create: ::c_long = 107;
|
||||
+pub const SYS_timer_settime: ::c_long = 110;
|
||||
+pub const SYS_timer_gettime: ::c_long = 108;
|
||||
+pub const SYS_timer_getoverrun: ::c_long = 109;
|
||||
+pub const SYS_timer_delete: ::c_long = 111;
|
||||
+pub const SYS_clock_settime: ::c_long = 112;
|
||||
+pub const SYS_clock_gettime: ::c_long = 113;
|
||||
+pub const SYS_clock_getres: ::c_long = 114;
|
||||
+pub const SYS_clock_nanosleep: ::c_long = 115;
|
||||
+pub const SYS_exit_group: ::c_long = 94;
|
||||
+pub const SYS_epoll_ctl: ::c_long = 21;
|
||||
+pub const SYS_tgkill: ::c_long = 131;
|
||||
+pub const SYS_mbind: ::c_long = 235;
|
||||
+pub const SYS_set_mempolicy: ::c_long = 237;
|
||||
+pub const SYS_get_mempolicy: ::c_long = 236;
|
||||
+pub const SYS_mq_open: ::c_long = 180;
|
||||
+pub const SYS_mq_unlink: ::c_long = 181;
|
||||
+pub const SYS_mq_timedsend: ::c_long = 182;
|
||||
+pub const SYS_mq_timedreceive: ::c_long = 183;
|
||||
+pub const SYS_mq_notify: ::c_long = 184;
|
||||
+pub const SYS_mq_getsetattr: ::c_long = 185;
|
||||
+pub const SYS_kexec_load: ::c_long = 104;
|
||||
+pub const SYS_waitid: ::c_long = 95;
|
||||
+pub const SYS_add_key: ::c_long = 217;
|
||||
+pub const SYS_request_key: ::c_long = 218;
|
||||
+pub const SYS_keyctl: ::c_long = 219;
|
||||
+pub const SYS_ioprio_set: ::c_long = 30;
|
||||
+pub const SYS_ioprio_get: ::c_long = 31;
|
||||
+pub const SYS_inotify_add_watch: ::c_long = 27;
|
||||
+pub const SYS_inotify_rm_watch: ::c_long = 28;
|
||||
+pub const SYS_migrate_pages: ::c_long = 238;
|
||||
+pub const SYS_openat: ::c_long = 56;
|
||||
+pub const SYS_mkdirat: ::c_long = 34;
|
||||
+pub const SYS_mknodat: ::c_long = 33;
|
||||
+pub const SYS_fchownat: ::c_long = 54;
|
||||
+pub const SYS_newfstatat: ::c_long = 79;
|
||||
+pub const SYS_unlinkat: ::c_long = 35;
|
||||
+pub const SYS_linkat: ::c_long = 37;
|
||||
+pub const SYS_symlinkat: ::c_long = 36;
|
||||
+pub const SYS_readlinkat: ::c_long = 78;
|
||||
+pub const SYS_fchmodat: ::c_long = 53;
|
||||
+pub const SYS_faccessat: ::c_long = 48;
|
||||
+pub const SYS_pselect6: ::c_long = 72;
|
||||
+pub const SYS_ppoll: ::c_long = 73;
|
||||
+pub const SYS_unshare: ::c_long = 97;
|
||||
+pub const SYS_set_robust_list: ::c_long = 99;
|
||||
+pub const SYS_get_robust_list: ::c_long = 100;
|
||||
+pub const SYS_splice: ::c_long = 76;
|
||||
+pub const SYS_tee: ::c_long = 77;
|
||||
+pub const SYS_sync_file_range: ::c_long = 84;
|
||||
+pub const SYS_vmsplice: ::c_long = 75;
|
||||
+pub const SYS_move_pages: ::c_long = 239;
|
||||
+pub const SYS_utimensat: ::c_long = 88;
|
||||
+pub const SYS_epoll_pwait: ::c_long = 22;
|
||||
+pub const SYS_timerfd_create: ::c_long = 85;
|
||||
+pub const SYS_fallocate: ::c_long = 47;
|
||||
+pub const SYS_timerfd_settime: ::c_long = 86;
|
||||
+pub const SYS_timerfd_gettime: ::c_long = 87;
|
||||
+pub const SYS_accept4: ::c_long = 242;
|
||||
+pub const SYS_signalfd4: ::c_long = 74;
|
||||
+pub const SYS_eventfd2: ::c_long = 19;
|
||||
+pub const SYS_epoll_create1: ::c_long = 20;
|
||||
+pub const SYS_dup3: ::c_long = 24;
|
||||
+pub const SYS_pipe2: ::c_long = 59;
|
||||
+pub const SYS_inotify_init1: ::c_long = 26;
|
||||
+pub const SYS_preadv: ::c_long = 69;
|
||||
+pub const SYS_pwritev: ::c_long = 70;
|
||||
+pub const SYS_rt_tgsigqueueinfo: ::c_long = 240;
|
||||
+pub const SYS_perf_event_open: ::c_long = 241;
|
||||
+pub const SYS_recvmmsg: ::c_long = 243;
|
||||
+pub const SYS_fanotify_init: ::c_long = 262;
|
||||
+pub const SYS_fanotify_mark: ::c_long = 263;
|
||||
+pub const SYS_prlimit64: ::c_long = 261;
|
||||
+pub const SYS_name_to_handle_at: ::c_long = 264;
|
||||
+pub const SYS_open_by_handle_at: ::c_long = 265;
|
||||
+pub const SYS_clock_adjtime: ::c_long = 266;
|
||||
+pub const SYS_syncfs: ::c_long = 267;
|
||||
+pub const SYS_sendmmsg: ::c_long = 269;
|
||||
+pub const SYS_setns: ::c_long = 268;
|
||||
+pub const SYS_getcpu: ::c_long = 168;
|
||||
+pub const SYS_process_vm_readv: ::c_long = 270;
|
||||
+pub const SYS_process_vm_writev: ::c_long = 271;
|
||||
+pub const SYS_kcmp: ::c_long = 272;
|
||||
+pub const SYS_finit_module: ::c_long = 273;
|
||||
+pub const SYS_sched_setattr: ::c_long = 274;
|
||||
+pub const SYS_sched_getattr: ::c_long = 275;
|
||||
+pub const SYS_renameat2: ::c_long = 276;
|
||||
+pub const SYS_seccomp: ::c_long = 277;
|
||||
+pub const SYS_getrandom: ::c_long = 278;
|
||||
+pub const SYS_memfd_create: ::c_long = 279;
|
||||
+pub const SYS_bpf: ::c_long = 280;
|
||||
+pub const SYS_execveat: ::c_long = 281;
|
||||
+pub const SYS_userfaultfd: ::c_long = 282;
|
||||
+pub const SYS_membarrier: ::c_long = 283;
|
||||
+pub const SYS_mlock2: ::c_long = 284;
|
||||
+pub const SYS_copy_file_range: ::c_long = 285;
|
||||
+pub const SYS_preadv2: ::c_long = 286;
|
||||
+pub const SYS_pwritev2: ::c_long = 287;
|
||||
+pub const SYS_pkey_mprotect: ::c_long = 288;
|
||||
+pub const SYS_pkey_alloc: ::c_long = 289;
|
||||
+pub const SYS_pkey_free: ::c_long = 290;
|
||||
+pub const SYS_statx: ::c_long = 291;
|
||||
+pub const SYS_pidfd_open: ::c_long = 434;
|
||||
+pub const SYS_clone3: ::c_long = 435;
|
||||
--
|
||||
2.30.1
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
From 2f418ff6fbe1dbdd2f56b3e208f3da6d71c0a7e4 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 17 Feb 2021 00:34:05 -0800
|
||||
Subject: [PATCH 2/4] FIXUP: linux/musl/mod.rs: add riscv64 to b64 set
|
||||
|
||||
https://github.com/rust-lang/libc/pull/1994/commits/30070c822be2ef399b2ba38cdc1d72ac694d65a3
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
vendor/libc/src/unix/linux_like/linux/musl/mod.rs | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/vendor/libc/src/unix/linux_like/linux/musl/mod.rs b/vendor/libc/src/unix/linux_like/linux/musl/mod.rs
|
||||
index 0d427ae38..d7eb212f7 100644
|
||||
--- a/vendor/libc/src/unix/linux_like/linux/musl/mod.rs
|
||||
+++ b/vendor/libc/src/unix/linux_like/linux/musl/mod.rs
|
||||
@@ -601,7 +601,8 @@ cfg_if! {
|
||||
if #[cfg(any(target_arch = "x86_64",
|
||||
target_arch = "aarch64",
|
||||
target_arch = "mips64",
|
||||
- target_arch = "powerpc64"))] {
|
||||
+ target_arch = "powerpc64",
|
||||
+ target_arch = "riscv64"))] {
|
||||
mod b64;
|
||||
pub use self::b64::*;
|
||||
} else if #[cfg(any(target_arch = "x86",
|
||||
--
|
||||
2.30.1
|
||||
|
||||
@@ -1,740 +0,0 @@
|
||||
From f6a2f444d9deae167f4c939c6e874744986744a1 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 17 Feb 2021 00:34:56 -0800
|
||||
Subject: [PATCH 3/4] FIXUP Correct definitions to match musl
|
||||
|
||||
https://github.com/rust-lang/libc/pull/1994/commits/5f6a4d9745c79c81be63c708515ab116786554a3
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
.../linux_like/linux/musl/b64/riscv64/mod.rs | 708 ++++++++----------
|
||||
1 file changed, 311 insertions(+), 397 deletions(-)
|
||||
|
||||
diff --git a/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
|
||||
index 14bae11d0..c37190cca 100644
|
||||
--- a/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
|
||||
+++ b/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs
|
||||
@@ -191,403 +191,8 @@ s! {
|
||||
pub l_len: ::off64_t,
|
||||
pub l_pid: ::pid_t,
|
||||
}
|
||||
-
|
||||
- pub struct ip_mreqn {
|
||||
- pub imr_multiaddr: ::in_addr,
|
||||
- pub imr_address: ::in_addr,
|
||||
- pub imr_ifindex: ::c_int,
|
||||
- }
|
||||
}
|
||||
|
||||
-pub const POSIX_FADV_DONTNEED: ::c_int = 4;
|
||||
-pub const POSIX_FADV_NOREUSE: ::c_int = 5;
|
||||
-pub const VEOF: usize = 4;
|
||||
-pub const RTLD_DEEPBIND: ::c_int = 0x8;
|
||||
-pub const RTLD_GLOBAL: ::c_int = 0x100;
|
||||
-pub const RTLD_NOLOAD: ::c_int = 0x4;
|
||||
-pub const TIOCGSOFTCAR: ::c_ulong = 21529;
|
||||
-pub const TIOCSSOFTCAR: ::c_ulong = 21530;
|
||||
-pub const TIOCGRS485: ::c_int = 21550;
|
||||
-pub const TIOCSRS485: ::c_int = 21551;
|
||||
-pub const RLIMIT_RSS: ::__rlimit_resource_t = 5;
|
||||
-pub const RLIMIT_AS: ::__rlimit_resource_t = 9;
|
||||
-pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8;
|
||||
-pub const RLIMIT_NOFILE: ::__rlimit_resource_t = 7;
|
||||
-pub const RLIMIT_NPROC: ::__rlimit_resource_t = 6;
|
||||
-pub const O_APPEND: ::c_int = 1024;
|
||||
-pub const O_CREAT: ::c_int = 64;
|
||||
-pub const O_EXCL: ::c_int = 128;
|
||||
-pub const O_NOCTTY: ::c_int = 256;
|
||||
-pub const O_NONBLOCK: ::c_int = 2048;
|
||||
-pub const O_SYNC: ::c_int = 1052672;
|
||||
-pub const O_RSYNC: ::c_int = 1052672;
|
||||
-pub const O_DSYNC: ::c_int = 4096;
|
||||
-pub const O_FSYNC: ::c_int = 1052672;
|
||||
-pub const O_NOATIME: ::c_int = 262144;
|
||||
-pub const O_PATH: ::c_int = 2097152;
|
||||
-pub const O_TMPFILE: ::c_int = 4259840;
|
||||
-pub const MAP_GROWSDOWN: ::c_int = 256;
|
||||
-pub const EDEADLK: ::c_int = 35;
|
||||
-pub const ENAMETOOLONG: ::c_int = 36;
|
||||
-pub const ENOLCK: ::c_int = 37;
|
||||
-pub const ENOSYS: ::c_int = 38;
|
||||
-pub const ENOTEMPTY: ::c_int = 39;
|
||||
-pub const ELOOP: ::c_int = 40;
|
||||
-pub const ENOMSG: ::c_int = 42;
|
||||
-pub const EIDRM: ::c_int = 43;
|
||||
-pub const ECHRNG: ::c_int = 44;
|
||||
-pub const EL2NSYNC: ::c_int = 45;
|
||||
-pub const EL3HLT: ::c_int = 46;
|
||||
-pub const EL3RST: ::c_int = 47;
|
||||
-pub const ELNRNG: ::c_int = 48;
|
||||
-pub const EUNATCH: ::c_int = 49;
|
||||
-pub const ENOCSI: ::c_int = 50;
|
||||
-pub const EL2HLT: ::c_int = 51;
|
||||
-pub const EBADE: ::c_int = 52;
|
||||
-pub const EBADR: ::c_int = 53;
|
||||
-pub const EXFULL: ::c_int = 54;
|
||||
-pub const ENOANO: ::c_int = 55;
|
||||
-pub const EBADRQC: ::c_int = 56;
|
||||
-pub const EBADSLT: ::c_int = 57;
|
||||
-pub const EMULTIHOP: ::c_int = 72;
|
||||
-pub const EOVERFLOW: ::c_int = 75;
|
||||
-pub const ENOTUNIQ: ::c_int = 76;
|
||||
-pub const EBADFD: ::c_int = 77;
|
||||
-pub const EBADMSG: ::c_int = 74;
|
||||
-pub const EREMCHG: ::c_int = 78;
|
||||
-pub const ELIBACC: ::c_int = 79;
|
||||
-pub const ELIBBAD: ::c_int = 80;
|
||||
-pub const ELIBSCN: ::c_int = 81;
|
||||
-pub const ELIBMAX: ::c_int = 82;
|
||||
-pub const ELIBEXEC: ::c_int = 83;
|
||||
-pub const EILSEQ: ::c_int = 84;
|
||||
-pub const ERESTART: ::c_int = 85;
|
||||
-pub const ESTRPIPE: ::c_int = 86;
|
||||
-pub const EUSERS: ::c_int = 87;
|
||||
-pub const ENOTSOCK: ::c_int = 88;
|
||||
-pub const EDESTADDRREQ: ::c_int = 89;
|
||||
-pub const EMSGSIZE: ::c_int = 90;
|
||||
-pub const EPROTOTYPE: ::c_int = 91;
|
||||
-pub const ENOPROTOOPT: ::c_int = 92;
|
||||
-pub const EPROTONOSUPPORT: ::c_int = 93;
|
||||
-pub const ESOCKTNOSUPPORT: ::c_int = 94;
|
||||
-pub const EOPNOTSUPP: ::c_int = 95;
|
||||
-pub const EPFNOSUPPORT: ::c_int = 96;
|
||||
-pub const EAFNOSUPPORT: ::c_int = 97;
|
||||
-pub const EADDRINUSE: ::c_int = 98;
|
||||
-pub const EADDRNOTAVAIL: ::c_int = 99;
|
||||
-pub const ENETDOWN: ::c_int = 100;
|
||||
-pub const ENETUNREACH: ::c_int = 101;
|
||||
-pub const ENETRESET: ::c_int = 102;
|
||||
-pub const ECONNABORTED: ::c_int = 103;
|
||||
-pub const ECONNRESET: ::c_int = 104;
|
||||
-pub const ENOBUFS: ::c_int = 105;
|
||||
-pub const EISCONN: ::c_int = 106;
|
||||
-pub const ENOTCONN: ::c_int = 107;
|
||||
-pub const ESHUTDOWN: ::c_int = 108;
|
||||
-pub const ETOOMANYREFS: ::c_int = 109;
|
||||
-pub const ETIMEDOUT: ::c_int = 110;
|
||||
-pub const ECONNREFUSED: ::c_int = 111;
|
||||
-pub const EHOSTDOWN: ::c_int = 112;
|
||||
-pub const EHOSTUNREACH: ::c_int = 113;
|
||||
-pub const EALREADY: ::c_int = 114;
|
||||
-pub const EINPROGRESS: ::c_int = 115;
|
||||
-pub const ESTALE: ::c_int = 116;
|
||||
-pub const EDQUOT: ::c_int = 122;
|
||||
-pub const ENOMEDIUM: ::c_int = 123;
|
||||
-pub const EMEDIUMTYPE: ::c_int = 124;
|
||||
-pub const ECANCELED: ::c_int = 125;
|
||||
-pub const ENOKEY: ::c_int = 126;
|
||||
-pub const EKEYEXPIRED: ::c_int = 127;
|
||||
-pub const EKEYREVOKED: ::c_int = 128;
|
||||
-pub const EKEYREJECTED: ::c_int = 129;
|
||||
-pub const EOWNERDEAD: ::c_int = 130;
|
||||
-pub const ENOTRECOVERABLE: ::c_int = 131;
|
||||
-pub const EHWPOISON: ::c_int = 133;
|
||||
-pub const ERFKILL: ::c_int = 132;
|
||||
-pub const SOL_SOCKET: ::c_int = 1;
|
||||
-pub const SO_REUSEADDR: ::c_int = 2;
|
||||
-pub const SO_TYPE: ::c_int = 3;
|
||||
-pub const SO_ERROR: ::c_int = 4;
|
||||
-pub const SO_DONTROUTE: ::c_int = 5;
|
||||
-pub const SO_BROADCAST: ::c_int = 6;
|
||||
-pub const SO_SNDBUF: ::c_int = 7;
|
||||
-pub const SO_RCVBUF: ::c_int = 8;
|
||||
-pub const SO_SNDBUFFORCE: ::c_int = 32;
|
||||
-pub const SO_RCVBUFFORCE: ::c_int = 33;
|
||||
-pub const SO_KEEPALIVE: ::c_int = 9;
|
||||
-pub const SO_OOBINLINE: ::c_int = 10;
|
||||
-pub const SO_NO_CHECK: ::c_int = 11;
|
||||
-pub const SO_PRIORITY: ::c_int = 12;
|
||||
-pub const SO_LINGER: ::c_int = 13;
|
||||
-pub const SO_BSDCOMPAT: ::c_int = 14;
|
||||
-pub const SO_REUSEPORT: ::c_int = 15;
|
||||
-pub const SO_PASSCRED: ::c_int = 16;
|
||||
-pub const SO_PEERCRED: ::c_int = 17;
|
||||
-pub const SO_RCVLOWAT: ::c_int = 18;
|
||||
-pub const SO_SNDLOWAT: ::c_int = 19;
|
||||
-pub const SO_RCVTIMEO: ::c_int = 20;
|
||||
-pub const SO_SNDTIMEO: ::c_int = 21;
|
||||
-pub const SO_SECURITY_AUTHENTICATION: ::c_int = 22;
|
||||
-pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::c_int = 23;
|
||||
-pub const SO_SECURITY_ENCRYPTION_NETWORK: ::c_int = 24;
|
||||
-pub const SO_BINDTODEVICE: ::c_int = 25;
|
||||
-pub const SO_ATTACH_FILTER: ::c_int = 26;
|
||||
-pub const SO_DETACH_FILTER: ::c_int = 27;
|
||||
-pub const SO_GET_FILTER: ::c_int = 26;
|
||||
-pub const SO_PEERNAME: ::c_int = 28;
|
||||
-pub const SO_TIMESTAMP: ::c_int = 29;
|
||||
-pub const SO_ACCEPTCONN: ::c_int = 30;
|
||||
-pub const SO_PEERSEC: ::c_int = 31;
|
||||
-pub const SO_PASSSEC: ::c_int = 34;
|
||||
-pub const SO_TIMESTAMPNS: ::c_int = 35;
|
||||
-pub const SCM_TIMESTAMPNS: ::c_int = 35;
|
||||
-pub const SO_MARK: ::c_int = 36;
|
||||
-pub const SO_PROTOCOL: ::c_int = 38;
|
||||
-pub const SO_DOMAIN: ::c_int = 39;
|
||||
-pub const SO_RXQ_OVFL: ::c_int = 40;
|
||||
-pub const SO_WIFI_STATUS: ::c_int = 41;
|
||||
-pub const SCM_WIFI_STATUS: ::c_int = 41;
|
||||
-pub const SO_PEEK_OFF: ::c_int = 42;
|
||||
-pub const SO_NOFCS: ::c_int = 43;
|
||||
-pub const SO_LOCK_FILTER: ::c_int = 44;
|
||||
-pub const SO_SELECT_ERR_QUEUE: ::c_int = 45;
|
||||
-pub const SO_BUSY_POLL: ::c_int = 46;
|
||||
-pub const SO_MAX_PACING_RATE: ::c_int = 47;
|
||||
-pub const SO_BPF_EXTENSIONS: ::c_int = 48;
|
||||
-pub const SO_INCOMING_CPU: ::c_int = 49;
|
||||
-pub const SO_ATTACH_BPF: ::c_int = 50;
|
||||
-pub const SO_DETACH_BPF: ::c_int = 27;
|
||||
-pub const SOCK_STREAM: ::c_int = 1;
|
||||
-pub const SOCK_DGRAM: ::c_int = 2;
|
||||
-pub const SA_ONSTACK: ::c_int = 134217728;
|
||||
-pub const SA_SIGINFO: ::c_int = 4;
|
||||
-pub const SA_NOCLDWAIT: ::c_int = 2;
|
||||
-pub const SIGTTIN: ::c_int = 21;
|
||||
-pub const SIGTTOU: ::c_int = 22;
|
||||
-pub const SIGXCPU: ::c_int = 24;
|
||||
-pub const SIGXFSZ: ::c_int = 25;
|
||||
-pub const SIGVTALRM: ::c_int = 26;
|
||||
-pub const SIGPROF: ::c_int = 27;
|
||||
-pub const SIGWINCH: ::c_int = 28;
|
||||
-pub const SIGCHLD: ::c_int = 17;
|
||||
-pub const SIGBUS: ::c_int = 7;
|
||||
-pub const SIGUSR1: ::c_int = 10;
|
||||
-pub const SIGUSR2: ::c_int = 12;
|
||||
-pub const SIGCONT: ::c_int = 18;
|
||||
-pub const SIGSTOP: ::c_int = 19;
|
||||
-pub const SIGTSTP: ::c_int = 20;
|
||||
-pub const SIGURG: ::c_int = 23;
|
||||
-pub const SIGIO: ::c_int = 29;
|
||||
-pub const SIGSYS: ::c_int = 31;
|
||||
-pub const SIGSTKFLT: ::c_int = 16;
|
||||
-pub const SIGPOLL: ::c_int = 29;
|
||||
-pub const SIGPWR: ::c_int = 30;
|
||||
-pub const SIG_SETMASK: ::c_int = 2;
|
||||
-pub const SIG_BLOCK: ::c_int = 0;
|
||||
-pub const SIG_UNBLOCK: ::c_int = 1;
|
||||
-pub const POLLWRNORM: ::c_short = 256;
|
||||
-pub const POLLWRBAND: ::c_short = 512;
|
||||
-pub const O_ASYNC: ::c_int = 8192;
|
||||
-pub const O_NDELAY: ::c_int = 2048;
|
||||
-pub const PTRACE_DETACH: ::c_uint = 17;
|
||||
-pub const EFD_NONBLOCK: ::c_int = 2048;
|
||||
-pub const F_GETLK: ::c_int = 5;
|
||||
-pub const F_GETOWN: ::c_int = 9;
|
||||
-pub const F_SETOWN: ::c_int = 8;
|
||||
-pub const F_SETLK: ::c_int = 6;
|
||||
-pub const F_SETLKW: ::c_int = 7;
|
||||
-pub const F_RDLCK: ::c_int = 0;
|
||||
-pub const F_WRLCK: ::c_int = 1;
|
||||
-pub const F_UNLCK: ::c_int = 2;
|
||||
-pub const F_OFD_GETLK: ::c_int = 36;
|
||||
-pub const F_OFD_SETLK: ::c_int = 37;
|
||||
-pub const F_OFD_SETLKW: ::c_int = 38;
|
||||
-pub const SFD_NONBLOCK: ::c_int = 2048;
|
||||
-pub const TCSANOW: ::c_int = 0;
|
||||
-pub const TCSADRAIN: ::c_int = 1;
|
||||
-pub const TCSAFLUSH: ::c_int = 2;
|
||||
-pub const TIOCLINUX: ::c_ulong = 21532;
|
||||
-pub const TIOCGSERIAL: ::c_ulong = 21534;
|
||||
-pub const TIOCEXCL: ::c_ulong = 21516;
|
||||
-pub const TIOCNXCL: ::c_ulong = 21517;
|
||||
-pub const TIOCSCTTY: ::c_ulong = 21518;
|
||||
-pub const TIOCSTI: ::c_ulong = 21522;
|
||||
-pub const TIOCMGET: ::c_ulong = 21525;
|
||||
-pub const TIOCMBIS: ::c_ulong = 21526;
|
||||
-pub const TIOCMBIC: ::c_ulong = 21527;
|
||||
-pub const TIOCMSET: ::c_ulong = 21528;
|
||||
-pub const TIOCCONS: ::c_ulong = 21533;
|
||||
-pub const TIOCM_ST: ::c_int = 8;
|
||||
-pub const TIOCM_SR: ::c_int = 16;
|
||||
-pub const TIOCM_CTS: ::c_int = 32;
|
||||
-pub const TIOCM_CAR: ::c_int = 64;
|
||||
-pub const TIOCM_RNG: ::c_int = 128;
|
||||
-pub const TIOCM_DSR: ::c_int = 256;
|
||||
-pub const SFD_CLOEXEC: ::c_int = 524288;
|
||||
-pub const NCCS: usize = 32;
|
||||
-pub const O_TRUNC: ::c_int = 512;
|
||||
-pub const O_CLOEXEC: ::c_int = 524288;
|
||||
-pub const EBFONT: ::c_int = 59;
|
||||
-pub const ENOSTR: ::c_int = 60;
|
||||
-pub const ENODATA: ::c_int = 61;
|
||||
-pub const ETIME: ::c_int = 62;
|
||||
-pub const ENOSR: ::c_int = 63;
|
||||
-pub const ENONET: ::c_int = 64;
|
||||
-pub const ENOPKG: ::c_int = 65;
|
||||
-pub const EREMOTE: ::c_int = 66;
|
||||
-pub const ENOLINK: ::c_int = 67;
|
||||
-pub const EADV: ::c_int = 68;
|
||||
-pub const ESRMNT: ::c_int = 69;
|
||||
-pub const ECOMM: ::c_int = 70;
|
||||
-pub const EPROTO: ::c_int = 71;
|
||||
-pub const EDOTDOT: ::c_int = 73;
|
||||
-pub const SA_NODEFER: ::c_int = 1073741824;
|
||||
-pub const SA_RESETHAND: ::c_int = -2147483648;
|
||||
-pub const SA_RESTART: ::c_int = 268435456;
|
||||
-pub const SA_NOCLDSTOP: ::c_int = 1;
|
||||
-pub const EPOLL_CLOEXEC: ::c_int = 524288;
|
||||
-pub const EFD_CLOEXEC: ::c_int = 524288;
|
||||
-pub const __SIZEOF_PTHREAD_CONDATTR_T: usize = 4;
|
||||
-pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
|
||||
-pub const O_DIRECT: ::c_int = 16384;
|
||||
-pub const O_DIRECTORY: ::c_int = 65536;
|
||||
-pub const O_NOFOLLOW: ::c_int = 131072;
|
||||
-pub const MAP_HUGETLB: ::c_int = 262144;
|
||||
-pub const MAP_LOCKED: ::c_int = 8192;
|
||||
-pub const MAP_NORESERVE: ::c_int = 16384;
|
||||
-pub const MAP_ANON: ::c_int = 32;
|
||||
-pub const MAP_ANONYMOUS: ::c_int = 32;
|
||||
-pub const MAP_DENYWRITE: ::c_int = 2048;
|
||||
-pub const MAP_EXECUTABLE: ::c_int = 4096;
|
||||
-pub const MAP_POPULATE: ::c_int = 32768;
|
||||
-pub const MAP_NONBLOCK: ::c_int = 65536;
|
||||
-pub const MAP_STACK: ::c_int = 131072;
|
||||
-pub const MAP_SYNC : ::c_int = 0x080000;
|
||||
-pub const EDEADLOCK: ::c_int = 35;
|
||||
-pub const EUCLEAN: ::c_int = 117;
|
||||
-pub const ENOTNAM: ::c_int = 118;
|
||||
-pub const ENAVAIL: ::c_int = 119;
|
||||
-pub const EISNAM: ::c_int = 120;
|
||||
-pub const EREMOTEIO: ::c_int = 121;
|
||||
-pub const FIOCLEX: ::c_ulong = 21585;
|
||||
-pub const FIONCLEX: ::c_ulong = 21584;
|
||||
-pub const FIONBIO: ::c_ulong = 21537;
|
||||
-pub const MCL_CURRENT: ::c_int = 1;
|
||||
-pub const MCL_FUTURE: ::c_int = 2;
|
||||
-pub const SIGSTKSZ: ::size_t = 8192;
|
||||
-pub const MINSIGSTKSZ: ::size_t = 2048;
|
||||
-pub const CBAUD: ::tcflag_t = 4111;
|
||||
-pub const TAB1: ::tcflag_t = 2048;
|
||||
-pub const TAB2: ::tcflag_t = 4096;
|
||||
-pub const TAB3: ::tcflag_t = 6144;
|
||||
-pub const CR1: ::tcflag_t = 512;
|
||||
-pub const CR2: ::tcflag_t = 1024;
|
||||
-pub const CR3: ::tcflag_t = 1536;
|
||||
-pub const FF1: ::tcflag_t = 32768;
|
||||
-pub const BS1: ::tcflag_t = 8192;
|
||||
-pub const VT1: ::tcflag_t = 16384;
|
||||
-pub const VWERASE: usize = 14;
|
||||
-pub const VREPRINT: usize = 12;
|
||||
-pub const VSUSP: usize = 10;
|
||||
-pub const VSTART: usize = 8;
|
||||
-pub const VSTOP: usize = 9;
|
||||
-pub const VDISCARD: usize = 13;
|
||||
-pub const VTIME: usize = 5;
|
||||
-pub const IXON: ::tcflag_t = 1024;
|
||||
-pub const IXOFF: ::tcflag_t = 4096;
|
||||
-pub const ONLCR: ::tcflag_t = 4;
|
||||
-pub const CSIZE: ::tcflag_t = 48;
|
||||
-pub const CS6: ::tcflag_t = 16;
|
||||
-pub const CS7: ::tcflag_t = 32;
|
||||
-pub const CS8: ::tcflag_t = 48;
|
||||
-pub const CSTOPB: ::tcflag_t = 64;
|
||||
-pub const CREAD: ::tcflag_t = 128;
|
||||
-pub const PARENB: ::tcflag_t = 256;
|
||||
-pub const PARODD: ::tcflag_t = 512;
|
||||
-pub const HUPCL: ::tcflag_t = 1024;
|
||||
-pub const CLOCAL: ::tcflag_t = 2048;
|
||||
-pub const ECHOKE: ::tcflag_t = 2048;
|
||||
-pub const ECHOE: ::tcflag_t = 16;
|
||||
-pub const ECHOK: ::tcflag_t = 32;
|
||||
-pub const ECHONL: ::tcflag_t = 64;
|
||||
-pub const ECHOPRT: ::tcflag_t = 1024;
|
||||
-pub const ECHOCTL: ::tcflag_t = 512;
|
||||
-pub const ISIG: ::tcflag_t = 1;
|
||||
-pub const ICANON: ::tcflag_t = 2;
|
||||
-pub const PENDIN: ::tcflag_t = 16384;
|
||||
-pub const NOFLSH: ::tcflag_t = 128;
|
||||
-pub const CIBAUD: ::tcflag_t = 269418496;
|
||||
-pub const CBAUDEX: ::tcflag_t = 4096;
|
||||
-pub const VSWTC: usize = 7;
|
||||
-pub const OLCUC: ::tcflag_t = 2;
|
||||
-pub const NLDLY: ::tcflag_t = 256;
|
||||
-pub const CRDLY: ::tcflag_t = 1536;
|
||||
-pub const TABDLY: ::tcflag_t = 6144;
|
||||
-pub const BSDLY: ::tcflag_t = 8192;
|
||||
-pub const FFDLY: ::tcflag_t = 32768;
|
||||
-pub const VTDLY: ::tcflag_t = 16384;
|
||||
-pub const XTABS: ::tcflag_t = 6144;
|
||||
-pub const B0: ::speed_t = 0;
|
||||
-pub const B50: ::speed_t = 1;
|
||||
-pub const B75: ::speed_t = 2;
|
||||
-pub const B110: ::speed_t = 3;
|
||||
-pub const B134: ::speed_t = 4;
|
||||
-pub const B150: ::speed_t = 5;
|
||||
-pub const B200: ::speed_t = 6;
|
||||
-pub const B300: ::speed_t = 7;
|
||||
-pub const B600: ::speed_t = 8;
|
||||
-pub const B1200: ::speed_t = 9;
|
||||
-pub const B1800: ::speed_t = 10;
|
||||
-pub const B2400: ::speed_t = 11;
|
||||
-pub const B4800: ::speed_t = 12;
|
||||
-pub const B9600: ::speed_t = 13;
|
||||
-pub const B19200: ::speed_t = 14;
|
||||
-pub const B38400: ::speed_t = 15;
|
||||
-pub const EXTA: ::speed_t = 14;
|
||||
-pub const EXTB: ::speed_t = 15;
|
||||
-pub const B57600: ::speed_t = 4097;
|
||||
-pub const B115200: ::speed_t = 4098;
|
||||
-pub const B230400: ::speed_t = 4099;
|
||||
-pub const B460800: ::speed_t = 4100;
|
||||
-pub const B500000: ::speed_t = 4101;
|
||||
-pub const B576000: ::speed_t = 4102;
|
||||
-pub const B921600: ::speed_t = 4103;
|
||||
-pub const B1000000: ::speed_t = 4104;
|
||||
-pub const B1152000: ::speed_t = 4105;
|
||||
-pub const B1500000: ::speed_t = 4106;
|
||||
-pub const B2000000: ::speed_t = 4107;
|
||||
-pub const B2500000: ::speed_t = 4108;
|
||||
-pub const B3000000: ::speed_t = 4109;
|
||||
-pub const B3500000: ::speed_t = 4110;
|
||||
-pub const B4000000: ::speed_t = 4111;
|
||||
-pub const VEOL: usize = 11;
|
||||
-pub const VEOL2: usize = 16;
|
||||
-pub const VMIN: usize = 6;
|
||||
-pub const IEXTEN: ::tcflag_t = 32768;
|
||||
-pub const TOSTOP: ::tcflag_t = 256;
|
||||
-pub const FLUSHO: ::tcflag_t = 4096;
|
||||
-pub const EXTPROC: ::tcflag_t = 65536;
|
||||
-pub const TCGETS: ::c_ulong = 21505;
|
||||
-pub const TCSETS: ::c_ulong = 21506;
|
||||
-pub const TCSETSW: ::c_ulong = 21507;
|
||||
-pub const TCSETSF: ::c_ulong = 21508;
|
||||
-pub const TCGETA: ::c_ulong = 21509;
|
||||
-pub const TCSETA: ::c_ulong = 21510;
|
||||
-pub const TCSETAW: ::c_ulong = 21511;
|
||||
-pub const TCSETAF: ::c_ulong = 21512;
|
||||
-pub const TCSBRK: ::c_ulong = 21513;
|
||||
-pub const TCXONC: ::c_ulong = 21514;
|
||||
-pub const TCFLSH: ::c_ulong = 21515;
|
||||
-pub const TIOCINQ: ::c_ulong = 21531;
|
||||
-pub const TIOCGPGRP: ::c_ulong = 21519;
|
||||
-pub const TIOCSPGRP: ::c_ulong = 21520;
|
||||
-pub const TIOCOUTQ: ::c_ulong = 21521;
|
||||
-pub const TIOCGWINSZ: ::c_ulong = 21523;
|
||||
-pub const TIOCSWINSZ: ::c_ulong = 21524;
|
||||
-pub const FIONREAD: ::c_ulong = 21531;
|
||||
-pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
|
||||
-pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
|
||||
pub const SYS_read: ::c_long = 63;
|
||||
pub const SYS_write: ::c_long = 64;
|
||||
pub const SYS_close: ::c_long = 57;
|
||||
@@ -863,5 +468,314 @@ pub const SYS_pkey_mprotect: ::c_long = 288;
|
||||
pub const SYS_pkey_alloc: ::c_long = 289;
|
||||
pub const SYS_pkey_free: ::c_long = 290;
|
||||
pub const SYS_statx: ::c_long = 291;
|
||||
-pub const SYS_pidfd_open: ::c_long = 434;
|
||||
-pub const SYS_clone3: ::c_long = 435;
|
||||
+
|
||||
+pub const O_APPEND: ::c_int = 1024;
|
||||
+pub const O_DIRECT: ::c_int = 0x4000;
|
||||
+pub const O_DIRECTORY: ::c_int = 0x10000;
|
||||
+pub const O_LARGEFILE: ::c_int = 0;
|
||||
+pub const O_NOFOLLOW: ::c_int = 0x20000;
|
||||
+pub const O_CREAT: ::c_int = 64;
|
||||
+pub const O_EXCL: ::c_int = 128;
|
||||
+pub const O_NOCTTY: ::c_int = 256;
|
||||
+pub const O_NONBLOCK: ::c_int = 2048;
|
||||
+pub const O_SYNC: ::c_int = 1052672;
|
||||
+pub const O_RSYNC: ::c_int = 1052672;
|
||||
+pub const O_DSYNC: ::c_int = 4096;
|
||||
+pub const O_ASYNC: ::c_int = 0x2000;
|
||||
+
|
||||
+pub const TIOCGRS485: ::c_int = 0x542E;
|
||||
+pub const TIOCSRS485: ::c_int = 0x542F;
|
||||
+
|
||||
+pub const SIGSTKSZ: ::size_t = 8192;
|
||||
+pub const MINSIGSTKSZ: ::size_t = 2048;
|
||||
+
|
||||
+pub const ENAMETOOLONG: ::c_int = 36;
|
||||
+pub const ENOLCK: ::c_int = 37;
|
||||
+pub const ENOSYS: ::c_int = 38;
|
||||
+pub const ENOTEMPTY: ::c_int = 39;
|
||||
+pub const ELOOP: ::c_int = 40;
|
||||
+pub const ENOMSG: ::c_int = 42;
|
||||
+pub const EIDRM: ::c_int = 43;
|
||||
+pub const ECHRNG: ::c_int = 44;
|
||||
+pub const EL2NSYNC: ::c_int = 45;
|
||||
+pub const EL3HLT: ::c_int = 46;
|
||||
+pub const EL3RST: ::c_int = 47;
|
||||
+pub const ELNRNG: ::c_int = 48;
|
||||
+pub const EUNATCH: ::c_int = 49;
|
||||
+pub const ENOCSI: ::c_int = 50;
|
||||
+pub const EL2HLT: ::c_int = 51;
|
||||
+pub const EBADE: ::c_int = 52;
|
||||
+pub const EBADR: ::c_int = 53;
|
||||
+pub const EXFULL: ::c_int = 54;
|
||||
+pub const ENOANO: ::c_int = 55;
|
||||
+pub const EBADRQC: ::c_int = 56;
|
||||
+pub const EBADSLT: ::c_int = 57;
|
||||
+pub const EMULTIHOP: ::c_int = 72;
|
||||
+pub const EOVERFLOW: ::c_int = 75;
|
||||
+pub const ENOTUNIQ: ::c_int = 76;
|
||||
+pub const EBADFD: ::c_int = 77;
|
||||
+pub const EBADMSG: ::c_int = 74;
|
||||
+pub const EREMCHG: ::c_int = 78;
|
||||
+pub const ELIBACC: ::c_int = 79;
|
||||
+pub const ELIBBAD: ::c_int = 80;
|
||||
+pub const ELIBSCN: ::c_int = 81;
|
||||
+pub const ELIBMAX: ::c_int = 82;
|
||||
+pub const ELIBEXEC: ::c_int = 83;
|
||||
+pub const EILSEQ: ::c_int = 84;
|
||||
+pub const ERESTART: ::c_int = 85;
|
||||
+pub const ESTRPIPE: ::c_int = 86;
|
||||
+pub const EUSERS: ::c_int = 87;
|
||||
+pub const ENOTSOCK: ::c_int = 88;
|
||||
+pub const EDESTADDRREQ: ::c_int = 89;
|
||||
+pub const EMSGSIZE: ::c_int = 90;
|
||||
+pub const EPROTOTYPE: ::c_int = 91;
|
||||
+pub const ENOPROTOOPT: ::c_int = 92;
|
||||
+pub const EPROTONOSUPPORT: ::c_int = 93;
|
||||
+pub const ESOCKTNOSUPPORT: ::c_int = 94;
|
||||
+pub const EOPNOTSUPP: ::c_int = 95;
|
||||
+pub const EPFNOSUPPORT: ::c_int = 96;
|
||||
+pub const EAFNOSUPPORT: ::c_int = 97;
|
||||
+pub const EADDRINUSE: ::c_int = 98;
|
||||
+pub const EADDRNOTAVAIL: ::c_int = 99;
|
||||
+pub const ENETDOWN: ::c_int = 100;
|
||||
+pub const ENETUNREACH: ::c_int = 101;
|
||||
+pub const ENETRESET: ::c_int = 102;
|
||||
+pub const ECONNABORTED: ::c_int = 103;
|
||||
+pub const ECONNRESET: ::c_int = 104;
|
||||
+pub const ENOBUFS: ::c_int = 105;
|
||||
+pub const EISCONN: ::c_int = 106;
|
||||
+pub const ENOTCONN: ::c_int = 107;
|
||||
+pub const ESHUTDOWN: ::c_int = 108;
|
||||
+pub const ETOOMANYREFS: ::c_int = 109;
|
||||
+pub const ETIMEDOUT: ::c_int = 110;
|
||||
+pub const ECONNREFUSED: ::c_int = 111;
|
||||
+pub const EHOSTDOWN: ::c_int = 112;
|
||||
+pub const EHOSTUNREACH: ::c_int = 113;
|
||||
+pub const EALREADY: ::c_int = 114;
|
||||
+pub const EINPROGRESS: ::c_int = 115;
|
||||
+pub const ESTALE: ::c_int = 116;
|
||||
+pub const EDQUOT: ::c_int = 122;
|
||||
+pub const ENOMEDIUM: ::c_int = 123;
|
||||
+pub const EMEDIUMTYPE: ::c_int = 124;
|
||||
+pub const ECANCELED: ::c_int = 125;
|
||||
+pub const ENOKEY: ::c_int = 126;
|
||||
+pub const EKEYEXPIRED: ::c_int = 127;
|
||||
+pub const EKEYREVOKED: ::c_int = 128;
|
||||
+pub const EKEYREJECTED: ::c_int = 129;
|
||||
+pub const EOWNERDEAD: ::c_int = 130;
|
||||
+pub const ENOTRECOVERABLE: ::c_int = 131;
|
||||
+pub const EHWPOISON: ::c_int = 133;
|
||||
+pub const ERFKILL: ::c_int = 132;
|
||||
+
|
||||
+pub const SA_ONSTACK: ::c_int = 0x08000000;
|
||||
+pub const SA_SIGINFO: ::c_int = 0x00000004;
|
||||
+pub const SA_NOCLDWAIT: ::c_int = 0x00000002;
|
||||
+
|
||||
+pub const SIGCHLD: ::c_int = 17;
|
||||
+pub const SIGBUS: ::c_int = 7;
|
||||
+pub const SIGTTIN: ::c_int = 21;
|
||||
+pub const SIGTTOU: ::c_int = 22;
|
||||
+pub const SIGXCPU: ::c_int = 24;
|
||||
+pub const SIGXFSZ: ::c_int = 25;
|
||||
+pub const SIGVTALRM: ::c_int = 26;
|
||||
+pub const SIGPROF: ::c_int = 27;
|
||||
+pub const SIGWINCH: ::c_int = 28;
|
||||
+pub const SIGUSR1: ::c_int = 10;
|
||||
+pub const SIGUSR2: ::c_int = 12;
|
||||
+pub const SIGCONT: ::c_int = 18;
|
||||
+pub const SIGSTOP: ::c_int = 19;
|
||||
+pub const SIGTSTP: ::c_int = 20;
|
||||
+pub const SIGURG: ::c_int = 23;
|
||||
+pub const SIGIO: ::c_int = 29;
|
||||
+pub const SIGSYS: ::c_int = 31;
|
||||
+pub const SIGSTKFLT: ::c_int = 16;
|
||||
+pub const SIGPOLL: ::c_int = 29;
|
||||
+pub const SIGPWR: ::c_int = 30;
|
||||
+pub const SIG_SETMASK: ::c_int = 2;
|
||||
+pub const SIG_BLOCK: ::c_int = 0x000000;
|
||||
+pub const SIG_UNBLOCK: ::c_int = 0x01;
|
||||
+
|
||||
+pub const F_GETLK: ::c_int = 5;
|
||||
+pub const F_GETOWN: ::c_int = 9;
|
||||
+pub const F_SETLK: ::c_int = 6;
|
||||
+pub const F_SETLKW: ::c_int = 7;
|
||||
+pub const F_SETOWN: ::c_int = 8;
|
||||
+pub const F_OFD_GETLK: ::c_int = 36;
|
||||
+pub const F_OFD_SETLK: ::c_int = 37;
|
||||
+pub const F_OFD_SETLKW: ::c_int = 38;
|
||||
+
|
||||
+pub const VEOF: usize = 4;
|
||||
+
|
||||
+pub const POLLWRNORM: ::c_short = 0x100;
|
||||
+pub const POLLWRBAND: ::c_short = 0x200;
|
||||
+
|
||||
+pub const SOCK_STREAM: ::c_int = 1;
|
||||
+pub const SOCK_DGRAM: ::c_int = 2;
|
||||
+pub const SOL_SOCKET: ::c_int = 1;
|
||||
+pub const SO_REUSEADDR: ::c_int = 2;
|
||||
+pub const SO_TYPE: ::c_int = 3;
|
||||
+pub const SO_ERROR: ::c_int = 4;
|
||||
+pub const SO_DONTROUTE: ::c_int = 5;
|
||||
+pub const SO_BROADCAST: ::c_int = 6;
|
||||
+pub const SO_SNDBUF: ::c_int = 7;
|
||||
+pub const SO_RCVBUF: ::c_int = 8;
|
||||
+pub const SO_KEEPALIVE: ::c_int = 9;
|
||||
+pub const SO_OOBINLINE: ::c_int = 10;
|
||||
+pub const SO_NO_CHECK: ::c_int = 11;
|
||||
+pub const SO_PRIORITY: ::c_int = 12;
|
||||
+pub const SO_LINGER: ::c_int = 13;
|
||||
+pub const SO_BSDCOMPAT: ::c_int = 14;
|
||||
+pub const SO_REUSEPORT: ::c_int = 15;
|
||||
+pub const SO_ACCEPTCONN: ::c_int = 30;
|
||||
+pub const SO_SNDBUFFORCE: ::c_int = 32;
|
||||
+pub const SO_RCVBUFFORCE: ::c_int = 33;
|
||||
+pub const SO_PROTOCOL: ::c_int = 38;
|
||||
+pub const SO_DOMAIN: ::c_int = 39;
|
||||
+
|
||||
+pub const MAP_ANON: ::c_int = 0x0020;
|
||||
+pub const MAP_GROWSDOWN: ::c_int = 0x0100;
|
||||
+pub const MAP_DENYWRITE: ::c_int = 0x0800;
|
||||
+pub const MAP_EXECUTABLE: ::c_int = 0x01000;
|
||||
+pub const MAP_LOCKED: ::c_int = 0x02000;
|
||||
+pub const MAP_NORESERVE: ::c_int = 0x04000;
|
||||
+pub const MAP_POPULATE: ::c_int = 0x08000;
|
||||
+pub const MAP_NONBLOCK: ::c_int = 0x010000;
|
||||
+pub const MAP_STACK: ::c_int = 0x020000;
|
||||
+pub const MAP_HUGETLB: ::c_int = 0x040000;
|
||||
+pub const MAP_SYNC : ::c_int = 0x080000;
|
||||
+
|
||||
+pub const RLIMIT_NLIMITS: ::c_int = 15;
|
||||
+pub const TIOCINQ: ::c_int = ::FIONREAD;
|
||||
+pub const MCL_CURRENT: ::c_int = 0x0001;
|
||||
+pub const MCL_FUTURE: ::c_int = 0x0002;
|
||||
+pub const CBAUD: ::tcflag_t = 0o0010017;
|
||||
+pub const TAB1: ::c_int = 0x00000800;
|
||||
+pub const TAB2: ::c_int = 0x00001000;
|
||||
+pub const TAB3: ::c_int = 0x00001800;
|
||||
+pub const CR1: ::c_int = 0x00000200;
|
||||
+pub const CR2: ::c_int = 0x00000400;
|
||||
+pub const CR3: ::c_int = 0x00000600;
|
||||
+pub const FF1: ::c_int = 0x00008000;
|
||||
+pub const BS1: ::c_int = 0x00002000;
|
||||
+pub const VT1: ::c_int = 0x00004000;
|
||||
+pub const VWERASE: usize = 14;
|
||||
+pub const VREPRINT: usize = 12;
|
||||
+pub const VSUSP: usize = 10;
|
||||
+pub const VSTART: usize = 8;
|
||||
+pub const VSTOP: usize = 9;
|
||||
+pub const VDISCARD: usize = 13;
|
||||
+pub const VTIME: usize = 5;
|
||||
+pub const IXON: ::tcflag_t = 0x00000400;
|
||||
+pub const IXOFF: ::tcflag_t = 0x00001000;
|
||||
+pub const ONLCR: ::tcflag_t = 0x4;
|
||||
+pub const CSIZE: ::tcflag_t = 0x00000030;
|
||||
+pub const CS6: ::tcflag_t = 0x00000010;
|
||||
+pub const CS7: ::tcflag_t = 0x00000020;
|
||||
+pub const CS8: ::tcflag_t = 0x00000030;
|
||||
+pub const CSTOPB: ::tcflag_t = 0x00000040;
|
||||
+pub const CREAD: ::tcflag_t = 0x00000080;
|
||||
+pub const PARENB: ::tcflag_t = 0x00000100;
|
||||
+pub const PARODD: ::tcflag_t = 0x00000200;
|
||||
+pub const HUPCL: ::tcflag_t = 0x00000400;
|
||||
+pub const CLOCAL: ::tcflag_t = 0x00000800;
|
||||
+pub const ECHOKE: ::tcflag_t = 0x00000800;
|
||||
+pub const ECHOE: ::tcflag_t = 0x00000010;
|
||||
+pub const ECHOK: ::tcflag_t = 0x00000020;
|
||||
+pub const ECHONL: ::tcflag_t = 0x00000040;
|
||||
+pub const ECHOPRT: ::tcflag_t = 0x00000400;
|
||||
+pub const ECHOCTL: ::tcflag_t = 0x00000200;
|
||||
+pub const ISIG: ::tcflag_t = 0x00000001;
|
||||
+pub const ICANON: ::tcflag_t = 0x00000002;
|
||||
+pub const PENDIN: ::tcflag_t = 0x00004000;
|
||||
+pub const NOFLSH: ::tcflag_t = 0x00000080;
|
||||
+pub const CIBAUD: ::tcflag_t = 0o02003600000;
|
||||
+pub const CBAUDEX: ::tcflag_t = 0o010000;
|
||||
+pub const VSWTC: usize = 7;
|
||||
+pub const OLCUC: ::tcflag_t = 0o000002;
|
||||
+pub const NLDLY: ::tcflag_t = 0o000400;
|
||||
+pub const CRDLY: ::tcflag_t = 0o003000;
|
||||
+pub const TABDLY: ::tcflag_t = 0o014000;
|
||||
+pub const BSDLY: ::tcflag_t = 0o020000;
|
||||
+pub const FFDLY: ::tcflag_t = 0o100000;
|
||||
+pub const VTDLY: ::tcflag_t = 0o040000;
|
||||
+pub const XTABS: ::tcflag_t = 0o014000;
|
||||
+pub const B57600: ::speed_t = 0o010001;
|
||||
+pub const B115200: ::speed_t = 0o010002;
|
||||
+pub const B230400: ::speed_t = 0o010003;
|
||||
+pub const B460800: ::speed_t = 0o010004;
|
||||
+pub const B500000: ::speed_t = 0o010005;
|
||||
+pub const B576000: ::speed_t = 0o010006;
|
||||
+pub const B921600: ::speed_t = 0o010007;
|
||||
+pub const B1000000: ::speed_t = 0o010010;
|
||||
+pub const B1152000: ::speed_t = 0o010011;
|
||||
+pub const B1500000: ::speed_t = 0o010012;
|
||||
+pub const B2000000: ::speed_t = 0o010013;
|
||||
+pub const B2500000: ::speed_t = 0o010014;
|
||||
+pub const B3000000: ::speed_t = 0o010015;
|
||||
+pub const B3500000: ::speed_t = 0o010016;
|
||||
+pub const B4000000: ::speed_t = 0o010017;
|
||||
+
|
||||
+pub const FIOCLEX: ::c_int = 0x5451;
|
||||
+pub const FIONCLEX: ::c_int = 0x5450;
|
||||
+pub const FIONBIO: ::c_int = 0x5421;
|
||||
+pub const EDEADLK: ::c_int = 35;
|
||||
+pub const EDEADLOCK: ::c_int = EDEADLK;
|
||||
+pub const SO_PASSCRED: ::c_int = 16;
|
||||
+pub const SO_PEERCRED: ::c_int = 17;
|
||||
+pub const SO_RCVLOWAT: ::c_int = 18;
|
||||
+pub const SO_SNDLOWAT: ::c_int = 19;
|
||||
+pub const SO_RCVTIMEO: ::c_int = 20;
|
||||
+pub const SO_SNDTIMEO: ::c_int = 21;
|
||||
+pub const EXTPROC: ::tcflag_t = 0x00010000;
|
||||
+pub const VEOL: usize = 11;
|
||||
+pub const VEOL2: usize = 16;
|
||||
+pub const VMIN: usize = 6;
|
||||
+pub const IEXTEN: ::tcflag_t = 0x00008000;
|
||||
+pub const TOSTOP: ::tcflag_t = 0x00000100;
|
||||
+pub const FLUSHO: ::tcflag_t = 0x00001000;
|
||||
+pub const TCGETS: ::c_int = 0x5401;
|
||||
+pub const TCSETS: ::c_int = 0x5402;
|
||||
+pub const TCSETSW: ::c_int = 0x5403;
|
||||
+pub const TCSETSF: ::c_int = 0x5404;
|
||||
+pub const TCGETA: ::c_int = 0x5405;
|
||||
+pub const TCSETA: ::c_int = 0x5406;
|
||||
+pub const TCSETAW: ::c_int = 0x5407;
|
||||
+pub const TCSETAF: ::c_int = 0x5408;
|
||||
+pub const TCSBRK: ::c_int = 0x5409;
|
||||
+pub const TCXONC: ::c_int = 0x540A;
|
||||
+pub const TCFLSH: ::c_int = 0x540B;
|
||||
+pub const TIOCGSOFTCAR: ::c_int = 0x5419;
|
||||
+pub const TIOCSSOFTCAR: ::c_int = 0x541A;
|
||||
+pub const TIOCLINUX: ::c_int = 0x541C;
|
||||
+pub const TIOCGSERIAL: ::c_int = 0x541E;
|
||||
+pub const TIOCEXCL: ::c_int = 0x540C;
|
||||
+pub const TIOCNXCL: ::c_int = 0x540D;
|
||||
+pub const TIOCSCTTY: ::c_int = 0x540E;
|
||||
+pub const TIOCGPGRP: ::c_int = 0x540F;
|
||||
+pub const TIOCSPGRP: ::c_int = 0x5410;
|
||||
+pub const TIOCOUTQ: ::c_int = 0x5411;
|
||||
+pub const TIOCSTI: ::c_int = 0x5412;
|
||||
+pub const TIOCGWINSZ: ::c_int = 0x5413;
|
||||
+pub const TIOCSWINSZ: ::c_int = 0x5414;
|
||||
+pub const TIOCMGET: ::c_int = 0x5415;
|
||||
+pub const TIOCMBIS: ::c_int = 0x5416;
|
||||
+pub const TIOCMBIC: ::c_int = 0x5417;
|
||||
+pub const TIOCMSET: ::c_int = 0x5418;
|
||||
+pub const FIONREAD: ::c_int = 0x541B;
|
||||
+pub const TIOCCONS: ::c_int = 0x541D;
|
||||
+
|
||||
+pub const TIOCM_LE: ::c_int = 0x001;
|
||||
+pub const TIOCM_DTR: ::c_int = 0x002;
|
||||
+pub const TIOCM_RTS: ::c_int = 0x004;
|
||||
+pub const TIOCM_ST: ::c_int = 0x008;
|
||||
+pub const TIOCM_SR: ::c_int = 0x010;
|
||||
+pub const TIOCM_CTS: ::c_int = 0x020;
|
||||
+pub const TIOCM_CAR: ::c_int = 0x040;
|
||||
+pub const TIOCM_RNG: ::c_int = 0x080;
|
||||
+pub const TIOCM_DSR: ::c_int = 0x100;
|
||||
+pub const TIOCM_CD: ::c_int = TIOCM_CAR;
|
||||
+pub const TIOCM_RI: ::c_int = TIOCM_RNG;
|
||||
+
|
||||
+extern "C" {
|
||||
+ pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int;
|
||||
+}
|
||||
--
|
||||
2.30.1
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,73 +0,0 @@
|
||||
Add suppor for riscv64 and riscv32 musl targets
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
--- a/vendor/cc/src/lib.rs
|
||||
+++ b/vendor/cc/src/lib.rs
|
||||
@@ -2361,6 +2361,7 @@ impl Build {
|
||||
"riscv-none-embed",
|
||||
]),
|
||||
"riscv64gc-unknown-linux-gnu" => Some("riscv64-linux-gnu"),
|
||||
+ "riscv64gc-unknown-linux-musl" => Some("riscv64-linux-musl"),
|
||||
"s390x-unknown-linux-gnu" => Some("s390x-linux-gnu"),
|
||||
"sparc-unknown-linux-gnu" => Some("sparc-linux-gnu"),
|
||||
"sparc64-unknown-linux-gnu" => Some("sparc64-linux-gnu"),
|
||||
--- a/compiler/rustc_target/src/spec/mod.rs
|
||||
+++ b/compiler/rustc_target/src/spec/mod.rs
|
||||
@@ -641,9 +641,11 @@ supported_targets! {
|
||||
("riscv32imc-unknown-none-elf", riscv32imc_unknown_none_elf),
|
||||
("riscv32imac-unknown-none-elf", riscv32imac_unknown_none_elf),
|
||||
("riscv32gc-unknown-linux-gnu", riscv32gc_unknown_linux_gnu),
|
||||
+ ("riscv32gc-unknown-linux-musl", riscv32gc_unknown_linux_musl),
|
||||
("riscv64imac-unknown-none-elf", riscv64imac_unknown_none_elf),
|
||||
("riscv64gc-unknown-none-elf", riscv64gc_unknown_none_elf),
|
||||
("riscv64gc-unknown-linux-gnu", riscv64gc_unknown_linux_gnu),
|
||||
+ ("riscv64gc-unknown-linux-musl", riscv64gc_unknown_linux_musl),
|
||||
|
||||
("aarch64-unknown-none", aarch64_unknown_none),
|
||||
("aarch64-unknown-none-softfloat", aarch64_unknown_none_softfloat),
|
||||
--- /dev/null
|
||||
+++ b/compiler/rustc_target/src/spec/riscv32gc_unknown_linux_musl.rs
|
||||
@@ -0,0 +1,19 @@
|
||||
+use crate::spec::{CodeModel, Target, TargetOptions};
|
||||
+
|
||||
+pub fn target() -> Target {
|
||||
+ Target {
|
||||
+ llvm_target: "riscv32-unknown-linux-musl".to_string(),
|
||||
+ pointer_width: 32,
|
||||
+ data_layout: "e-m:e-p:32:32-i64:64-n32-S128".to_string(),
|
||||
+ arch: "riscv32".to_string(),
|
||||
+ options: TargetOptions {
|
||||
+ unsupported_abis: super::riscv_base::unsupported_abis(),
|
||||
+ code_model: Some(CodeModel::Medium),
|
||||
+ cpu: "generic-rv32".to_string(),
|
||||
+ features: "+m,+a,+f,+d,+c".to_string(),
|
||||
+ llvm_abiname: "ilp32d".to_string(),
|
||||
+ max_atomic_width: Some(32),
|
||||
+ ..super::linux_musl_base::opts()
|
||||
+ },
|
||||
+ }
|
||||
+}
|
||||
--- /dev/null
|
||||
+++ b/compiler/rustc_target/src/spec/riscv64gc_unknown_linux_musl.rs
|
||||
@@ -0,0 +1,19 @@
|
||||
+use crate::spec::{CodeModel, Target, TargetOptions};
|
||||
+
|
||||
+pub fn target() -> Target {
|
||||
+ Target {
|
||||
+ llvm_target: "riscv64-unknown-linux-musl".to_string(),
|
||||
+ pointer_width: 64,
|
||||
+ data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".to_string(),
|
||||
+ arch: "riscv64".to_string(),
|
||||
+ options: TargetOptions {
|
||||
+ unsupported_abis: super::riscv_base::unsupported_abis(),
|
||||
+ code_model: Some(CodeModel::Medium),
|
||||
+ cpu: "generic-rv64".to_string(),
|
||||
+ features: "+m,+a,+f,+d,+c".to_string(),
|
||||
+ llvm_abiname: "lp64d".to_string(),
|
||||
+ max_atomic_width: Some(64),
|
||||
+ ..super::linux_musl_base::opts()
|
||||
+ },
|
||||
+ }
|
||||
+}
|
||||
@@ -0,0 +1,45 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
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,58 @@
|
||||
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
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
--- a/vendor/cc-1.0.60/.cargo-checksum.json
|
||||
+++ b/vendor/cc-1.0.60/.cargo-checksum.json
|
||||
@@ -1 +1 @@
|
||||
-{"files":{"Cargo.lock":"30b9e23f97015aea3eed3e17c6d76d565c2924efec8bdae64c899080847afe89","Cargo.toml":"f6f22b69df3df57c58373cdee72b22218ffa030bc375b36632660037dd72c866","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"51405d284d2e0620db62c655c652fc0ec84f20c1cb30529227355c9575a9e6dd","src/bin/gcc-shim.rs":"b77907875029494b6288841c3aed2e4939ed40708c7f597fca5c9e2570490ca6","src/com.rs":"bcdaf1c28b71e6ef889c6b08d1ce9d7c0761344a677f523bc4c3cd297957f804","src/lib.rs":"903c5f2f5dd0cc7d04f99f605a95e6abde8b38156fd4e73eefc58493f55a4e5a","src/registry.rs":"3cc1b5a50879fa751572878ae1d0afbfc960c11665258492754b2c8bccb0ff5d","src/setup_config.rs":"7014103587d3382eac599cb76f016e2609b8140970861b2237982d1db24af265","src/winapi.rs":"ea8b7edbb9ff87957254f465c2334e714c5d6b3b19a8d757c48ea7ca0881c50c","src/windows_registry.rs":"52afe8554f577c87841c48ddee3ba7ffe70a00129e1d6eeb2ec0efb3d2b9aa11","tests/cc_env.rs":"e02b3b0824ad039b47e4462c5ef6dbe6c824c28e7953af94a0f28f7b5158042e","tests/cflags.rs":"57f06eb5ce1557e5b4a032d0c4673e18fbe6f8d26c1deb153126e368b96b41b3","tests/cxxflags.rs":"c2c6c6d8a0d7146616fa1caed26876ee7bc9fcfffd525eb4743593cade5f3371","tests/support/mod.rs":"16274867f23871e9b07614eda4c7344da13d1751fed63d4f633857e40be86394","tests/test.rs":"65c073e0e2cf4aa0433066102788e9f57442719e6f32f5ad5248aa7132bb4597"},"package":"ef611cc68ff783f18535d77ddd080185275713d852c4f5cbb6122c462a7a825c"}
|
||||
\ No newline at end of file
|
||||
+{"files":{"Cargo.lock":"30b9e23f97015aea3eed3e17c6d76d565c2924efec8bdae64c899080847afe89","Cargo.toml":"f6f22b69df3df57c58373cdee72b22218ffa030bc375b36632660037dd72c866","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"51405d284d2e0620db62c655c652fc0ec84f20c1cb30529227355c9575a9e6dd","src/bin/gcc-shim.rs":"b77907875029494b6288841c3aed2e4939ed40708c7f597fca5c9e2570490ca6","src/com.rs":"bcdaf1c28b71e6ef889c6b08d1ce9d7c0761344a677f523bc4c3cd297957f804","src/lib.rs":"2788af2bdf425f267b33bc524f3e627851b52422e38f480a7e39eb834264fd73","src/registry.rs":"3cc1b5a50879fa751572878ae1d0afbfc960c11665258492754b2c8bccb0ff5d","src/setup_config.rs":"7014103587d3382eac599cb76f016e2609b8140970861b2237982d1db24af265","src/winapi.rs":"ea8b7edbb9ff87957254f465c2334e714c5d6b3b19a8d757c48ea7ca0881c50c","src/windows_registry.rs":"52afe8554f577c87841c48ddee3ba7ffe70a00129e1d6eeb2ec0efb3d2b9aa11","tests/cc_env.rs":"e02b3b0824ad039b47e4462c5ef6dbe6c824c28e7953af94a0f28f7b5158042e","tests/cflags.rs":"57f06eb5ce1557e5b4a032d0c4673e18fbe6f8d26c1deb153126e368b96b41b3","tests/cxxflags.rs":"c2c6c6d8a0d7146616fa1caed26876ee7bc9fcfffd525eb4743593cade5f3371","tests/support/mod.rs":"16274867f23871e9b07614eda4c7344da13d1751fed63d4f633857e40be86394","tests/test.rs":"65c073e0e2cf4aa0433066102788e9f57442719e6f32f5ad5248aa7132bb4597"},"package":"ef611cc68ff783f18535d77ddd080185275713d852c4f5cbb6122c462a7a825c"}
|
||||
--- a/vendor/cc-1.0.60/src/lib.rs
|
||||
+++ b/vendor/cc-1.0.60/src/lib.rs
|
||||
@@ -1639,14 +1639,17 @@ impl Build {
|
||||
let mut parts = target.split('-');
|
||||
if let Some(arch) = parts.next() {
|
||||
let arch = &arch[5..];
|
||||
- cmd.args.push(("-march=rv".to_owned() + arch).into());
|
||||
if target.contains("linux") && arch.starts_with("64") {
|
||||
+ cmd.args.push(("-march=rv64gc").into());
|
||||
cmd.args.push("-mabi=lp64d".into());
|
||||
} else if target.contains("linux") && arch.starts_with("32") {
|
||||
+ cmd.args.push(("-march=rv32gc").into());
|
||||
cmd.args.push("-mabi=ilp32d".into());
|
||||
} else if arch.starts_with("64") {
|
||||
+ cmd.args.push(("-march=rv".to_owned() + arch).into());
|
||||
cmd.args.push("-mabi=lp64".into());
|
||||
} else {
|
||||
+ cmd.args.push(("-march=rv".to_owned() + arch).into());
|
||||
cmd.args.push("-mabi=ilp32".into());
|
||||
}
|
||||
cmd.args.push("-mcmodel=medany".into());
|
||||
@@ -2332,6 +2335,9 @@ impl Build {
|
||||
"riscv-none-embed",
|
||||
]),
|
||||
"riscv64gc-unknown-linux-gnu" => Some("riscv64-linux-gnu"),
|
||||
+ "riscv32gc-unknown-linux-gnu" => Some("riscv32-linux-gnu"),
|
||||
+ "riscv64gc-unknown-linux-musl" => Some("riscv64-linux-musl"),
|
||||
+ "riscv32gc-unknown-linux-musl" => Some("riscv32-linux-musl"),
|
||||
"s390x-unknown-linux-gnu" => Some("s390x-linux-gnu"),
|
||||
"sparc-unknown-linux-gnu" => Some("sparc-linux-gnu"),
|
||||
"sparc64-unknown-linux-gnu" => Some("sparc64-linux-gnu"),
|
||||
@@ -1,40 +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=93a95682d51b4cb0a633a97046940ef0"
|
||||
|
||||
RUSTLIB_DEP = ""
|
||||
inherit cargo
|
||||
|
||||
DEPENDS_append_libc-musl = " libunwind"
|
||||
# rv32 does not have libunwind ported yet
|
||||
DEPENDS_remove_riscv32 = "libunwind"
|
||||
DEPENDS_remove_riscv64 = "libunwind"
|
||||
|
||||
# Embed bitcode in order to allow compiling both with and without LTO
|
||||
RUSTFLAGS += "-Cembed-bitcode=yes"
|
||||
# Needed so cargo can find libbacktrace
|
||||
RUSTFLAGS += "-L ${STAGING_LIBDIR} -C link-arg=-Wl,-soname,libstd.so"
|
||||
|
||||
S = "${RUSTSRC}/src/libstd"
|
||||
|
||||
CARGO_FEATURES ?= "panic-unwind backtrace"
|
||||
CARGO_BUILD_FLAGS += "--features '${CARGO_FEATURES}'"
|
||||
CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor"
|
||||
|
||||
do_compile_prepend () {
|
||||
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 -f ${B}/${TARGET_SYS}/${BUILD_DIR}/deps/*.d
|
||||
cp ${B}/${TARGET_SYS}/${BUILD_DIR}/deps/* ${D}${rustlibdir}
|
||||
}
|
||||
41
recipes-devtools/rust/libstd-rs_1.10.0.bb
Normal file
41
recipes-devtools/rust/libstd-rs_1.10.0.bb
Normal file
@@ -0,0 +1,41 @@
|
||||
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}
|
||||
}
|
||||
37
recipes-devtools/rust/libstd-rs_1.12.1.bb
Normal file
37
recipes-devtools/rust/libstd-rs_1.12.1.bb
Normal file
@@ -0,0 +1,37 @@
|
||||
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}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
require rust-source-${PV}.inc
|
||||
require libstd-rs.inc
|
||||
|
||||
SRC_URI += "file://riscv-march.patch;patchdir=../../ \
|
||||
file://rv64gc.patch;patchdir=../../ \
|
||||
file://0001-Add-base-definitions-for-riscv64-musl.patch;patchdir=../../ \
|
||||
file://0002-FIXUP-linux-musl-mod.rs-add-riscv64-to-b64-set.patch;patchdir=../../ \
|
||||
file://0003-FIXUP-Correct-definitions-to-match-musl.patch;patchdir=../../ \
|
||||
file://0004-Update-checksums-for-modified-files.patch;patchdir=../../ \
|
||||
"
|
||||
# libstd moved from src/libstd to library/std in 1.47+
|
||||
S = "${RUSTSRC}/library/std"
|
||||
@@ -1,12 +0,0 @@
|
||||
require rust-source-${PV}.inc
|
||||
require libstd-rs.inc
|
||||
|
||||
SRC_URI += "file://riscv-march.patch;patchdir=../../ \
|
||||
file://rv64gc.patch;patchdir=../../ \
|
||||
file://0001-Add-base-definitions-for-riscv64-musl.patch;patchdir=../../ \
|
||||
file://0002-FIXUP-linux-musl-mod.rs-add-riscv64-to-b64-set.patch;patchdir=../../ \
|
||||
file://0003-FIXUP-Correct-definitions-to-match-musl.patch;patchdir=../../ \
|
||||
file://0004-Update-1.51.0-checksums-for-modified-files.patch;patchdir=../../ \
|
||||
"
|
||||
# libstd moved from src/libstd to library/std in 1.47+
|
||||
S = "${RUSTSRC}/library/std"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user