summaryrefslogtreecommitdiff
path: root/libc/ci/android-sysimage.sh
diff options
context:
space:
mode:
authorDaniel Mueller <deso@posteo.net>2017-05-29 14:07:12 -0700
committerDaniel Mueller <deso@posteo.net>2017-05-29 14:07:12 -0700
commit684c4574c09a6f2cc5a208e4505e9306602b4abc (patch)
treedaaac715140748c82f801f2e4047c57780689bc0 /libc/ci/android-sysimage.sh
parent436915453f7474117234aa0cedab6f97b3b3575f (diff)
downloadnitrocli-684c4574c09a6f2cc5a208e4505e9306602b4abc.tar.gz
nitrocli-684c4574c09a6f2cc5a208e4505e9306602b4abc.tar.bz2
Update libc crate to 0.2.23
The 'libc' create got a couple of updates. This change imports the new code and bumps the version to use. Import subrepo libc/:libc at 7db3fd570dfb41a38fb17116e93679307178103a
Diffstat (limited to 'libc/ci/android-sysimage.sh')
-rw-r--r--libc/ci/android-sysimage.sh52
1 files changed, 52 insertions, 0 deletions
diff --git a/libc/ci/android-sysimage.sh b/libc/ci/android-sysimage.sh
new file mode 100644
index 0000000..9611dfe
--- /dev/null
+++ b/libc/ci/android-sysimage.sh
@@ -0,0 +1,52 @@
+# Copyright 2017 The Rust Project Developers. See the COPYRIGHT
+# file at the top-level directory of this distribution and at
+# http://rust-lang.org/COPYRIGHT.
+#
+# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+# option. This file may not be copied, modified, or distributed
+# except according to those terms.
+
+set -ex
+
+URL=https://dl.google.com/android/repository/sys-img/android
+
+main() {
+ local arch=$1
+ local name=$2
+ local dest=/system
+ local td=$(mktemp -d)
+
+ apt-get install --no-install-recommends e2tools
+
+ pushd $td
+ curl -O $URL/$name
+ unzip -q $name
+
+ local system=$(find . -name system.img)
+ mkdir -p $dest/{bin,lib,lib64}
+
+ # Extract android linker and libraries to /system
+ # This allows android executables to be run directly (or with qemu)
+ if [ $arch = "x86_64" -o $arch = "arm64" ]; then
+ e2cp -p $system:/bin/linker64 $dest/bin/
+ e2cp -p $system:/lib64/libdl.so $dest/lib64/
+ e2cp -p $system:/lib64/libc.so $dest/lib64/
+ e2cp -p $system:/lib64/libm.so $dest/lib64/
+ else
+ e2cp -p $system:/bin/linker $dest/bin/
+ e2cp -p $system:/lib/libdl.so $dest/lib/
+ e2cp -p $system:/lib/libc.so $dest/lib/
+ e2cp -p $system:/lib/libm.so $dest/lib/
+ fi
+
+ # clean up
+ apt-get purge --auto-remove -y e2tools
+
+ popd
+
+ rm -rf $td
+}
+
+main "${@}"