summaryrefslogtreecommitdiffstats
path: root/third_party/rust/libc/ci/run-qemu.sh
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/libc/ci/run-qemu.sh')
-rw-r--r--third_party/rust/libc/ci/run-qemu.sh35
1 files changed, 35 insertions, 0 deletions
diff --git a/third_party/rust/libc/ci/run-qemu.sh b/third_party/rust/libc/ci/run-qemu.sh
new file mode 100644
index 000000000..70f312e3b
--- /dev/null
+++ b/third_party/rust/libc/ci/run-qemu.sh
@@ -0,0 +1,35 @@
+# Initial script which is run inside of all qemu images. The first argument to
+# this script (as arranged by the qemu image itself) is the path to where the
+# libc crate is mounted.
+#
+# For qemu images we currently need to install Rust manually as this wasn't done
+# by the initial run-travis.sh script
+#
+# FIXME: feels like run-travis.sh should be responsible for downloading the
+# compiler.
+
+set -ex
+
+ROOT=$1
+cp -r $ROOT/libc /tmp/libc
+cd /tmp/libc
+
+TARGET=$(cat $ROOT/TARGET)
+export CARGO_TARGET_DIR=/tmp
+
+case $TARGET in
+ *-openbsd)
+ pkg_add rust curl gcc-4.8.4p4
+ curl https://static.rust-lang.org/cargo-dist/2015-04-02/cargo-nightly-x86_64-unknown-openbsd.tar.gz | \
+ tar xzf - -C /tmp
+ export PATH=$PATH:/tmp/cargo-nightly-x86_64-unknown-openbsd/cargo/bin
+ export CC=egcc
+ ;;
+
+ *)
+ echo "Unknown target: $TARGET"
+ exit 1
+ ;;
+esac
+
+exec sh ci/run.sh $TARGET