Skip to content

Commit e9ad79f

Browse files
committed
Auto merge of #98 - malbarbo:android-x86-64, r=japaric
Add x86_64-linux-android build support
2 parents 1ecf0e4 + 125db52 commit e9ad79f

File tree

5 files changed

+40
-2
lines changed

5 files changed

+40
-2
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ matrix:
3030
- env: TARGET=arm-linux-androideabi CPP=1 STD=1 OPENSSL=0.5.5
3131
- env: TARGET=armv7-linux-androideabi CPP=1 STD=1 OPENSSL=0.5.5
3232
- env: TARGET=i686-linux-android CPP=1 STD=1 OPENSSL=0.5.5
33+
- env: TARGET=x86_64-linux-android CPP=1 STD=1 OPENSSL=0.5.5
3334

3435
# OSX
3536
- env: TARGET=i686-apple-darwin DYLIB=1 STD=1 RUN=1

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ worst, "hang" (never terminate).
181181
| `thumbv7em-none-eabi` [3] | 2.2.0 | 5.3.1 | N/A | | N/A | |
182182
| `thumbv7em-none-eabihf` [3] | 2.2.0 | 5.3.1 | N/A | | N/A | |
183183
| `thumbv7m-none-eabi` [3] | 2.2.0 | 5.3.1 | N/A | | N/A | |
184+
| `x86_64-linux-android` | N/A | 4.9 | 1.0.2k || N/A | |
184185
| `x86_64-pc-windows-gnu`[1] | N/A | 5.3.1 | || N/A | |
185186
| `x86_64-unknown-dragonfly` [1] [2] | 4.6.0 | 5.3.0 | 1.0.2k | | N/A ||
186187
| `x86_64-unknown-freebsd` [1] | 10.2 | 5.3.0 | 1.0.2k | | N/A | |

ci/script.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ EOF
6262
git clone --depth 1 https://github.com/rust-lang/cargo $td
6363

6464
pushd $td
65-
cargo update -p libc
6665
cross build --target $TARGET
6766
popd
6867

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
FROM ubuntu:16.04
2+
3+
RUN apt-get update && \
4+
apt-get install -y --no-install-recommends \
5+
ca-certificates \
6+
cmake \
7+
gcc \
8+
libc6-dev \
9+
make \
10+
pkg-config
11+
12+
COPY xargo.sh /
13+
RUN bash /xargo.sh
14+
15+
COPY android-ndk.sh /
16+
RUN bash /android-ndk.sh x86_64 21
17+
ENV PATH=$PATH:/android-ndk/bin
18+
19+
COPY openssl.sh /
20+
RUN bash /openssl.sh linux-x86_64 x86_64-linux-android- -mandroid -fomit-frame-pointer
21+
22+
# Libz is distributed in the android ndk, but for some unknown reason it is not
23+
# found in the build process of some crates, so we explicit set the DEP_Z_ROOT
24+
ENV CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER=x86_64-linux-android-gcc \
25+
CC_x86_64_linux_android=x86_64-linux-android-gcc \
26+
CXX_x86_64_linux_android=x86_64-linux-android-g++ \
27+
DEP_Z_ROOT=/android-ndk/sysroot/usr/ \
28+
OPENSSL_STATIC=1 \
29+
OPENSSL_DIR=/openssl \
30+
OPENSSL_INCLUDE_DIR=/openssl/include \
31+
OPENSSL_LIB_DIR=/openssl/lib \
32+
RUST_TEST_THREADS=1 \
33+
HOME=/tmp/

src/main.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ pub enum Target {
9090
Armv7LinuxAndroideabi,
9191
Aarch64LinuxAndroid,
9292
I686LinuxAndroid,
93+
X86_64LinuxAndroid,
9394

9495
// Linux
9596
Aarch64UnknownLinuxGnu,
@@ -160,7 +161,8 @@ impl Target {
160161
Target::ArmLinuxAndroideabi |
161162
Target::Armv7LinuxAndroideabi |
162163
Target::Aarch64LinuxAndroid |
163-
Target::I686LinuxAndroid => true,
164+
Target::I686LinuxAndroid |
165+
Target::X86_64LinuxAndroid => true,
164166
_ => false,
165167
}
166168
}
@@ -253,6 +255,7 @@ impl Target {
253255
Thumbv7mNoneEabi => "thumbv7m-none-eabi",
254256
X86_64AppleDarwin => "x86_64-apple-darwin",
255257
X86_64PcWindowsGnu => "x86_64-pc-windows-gnu",
258+
X86_64LinuxAndroid => "x86_64-linux-android",
256259
X86_64UnknownDragonfly => "x86_64-unknown-dragonfly",
257260
X86_64UnknownFreebsd => "x86_64-unknown-freebsd",
258261
X86_64UnknownLinuxGnu => "x86_64-unknown-linux-gnu",
@@ -298,6 +301,7 @@ impl Target {
298301
"thumbv7em-none-eabihf" => Thumbv7emNoneEabihf,
299302
"thumbv7m-none-eabi" => Thumbv7mNoneEabi,
300303
"x86_64-apple-darwin" => X86_64AppleDarwin,
304+
"x86_64-linux-android" => X86_64LinuxAndroid,
301305
"x86_64-pc-windows-gnu" => X86_64PcWindowsGnu,
302306
"x86_64-unknown-dragonfly" => X86_64UnknownDragonfly,
303307
"x86_64-unknown-freebsd" => X86_64UnknownFreebsd,

0 commit comments

Comments
 (0)