Skip to content

Commit 0188f14

Browse files
committed
Auto merge of #158 - gnzlbg:armhf, r=<try>
add support for arm-unknown-linux-gnueabihf
2 parents c32c3a6 + 46b39f8 commit 0188f14

File tree

6 files changed

+105
-41
lines changed

6 files changed

+105
-41
lines changed

.travis.yml

Lines changed: 42 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -7,64 +7,65 @@ sudo: required
77
matrix:
88
include:
99
# Linux
10-
- env: TARGET=aarch64-unknown-linux-gnu CPP=1 DYLIB=1 STD=1 OPENSSL=0.5.5 RUN=1
11-
- env: TARGET=arm-unknown-linux-gnueabi CPP=1 DYLIB=1 STD=1 OPENSSL=0.5.5 RUN=1
12-
- env: TARGET=arm-unknown-linux-musleabi STD=1 RUN=1
10+
# - env: TARGET=aarch64-unknown-linux-gnu CPP=1 DYLIB=1 STD=1 OPENSSL=0.5.5 RUN=1
11+
# - env: TARGET=arm-unknown-linux-gnueabi CPP=1 DYLIB=1 STD=1 OPENSSL=0.5.5 RUN=1
12+
# - env: TARGET=arm-unknown-linux-gnueabihf CPP=1 DYLIB=1 STD=1 OPENSSL=0.5.5 RUN=1
13+
# - env: TARGET=arm-unknown-linux-musleabi STD=1 RUN=1
1314
- env: TARGET=armv7-unknown-linux-gnueabihf CPP=1 DYLIB=1 STD=1 OPENSSL=0.5.5 RUN=1
14-
- env: TARGET=armv7-unknown-linux-musleabihf STD=1 RUN=1
15-
- env: TARGET=i686-unknown-linux-gnu CPP=1 DYLIB=1 STD=1 OPENSSL=0.5.5 RUN=1
16-
- env: TARGET=i686-unknown-linux-musl STD=1 OPENSSL=0.5.5 RUN=1
17-
- env: TARGET=mips-unknown-linux-gnu CPP=1 DYLIB=1 STD=1 OPENSSL=0.5.5 RUN=1
18-
- env: TARGET=mips64-unknown-linux-gnuabi64 CPP=1 DYLIB=1 STD=1 OPENSSL=0.7.17 RUN=1
19-
- env: TARGET=mips64el-unknown-linux-gnuabi64 CPP=1 DYLIB=1 STD=1 OPENSSL=0.7.17 RUN=1
20-
- env: TARGET=mipsel-unknown-linux-gnu CPP=1 DYLIB=1 STD=1 OPENSSL=0.5.5 RUN=1
21-
- env: TARGET=powerpc-unknown-linux-gnu CPP=1 DYLIB=1 STD=1 OPENSSL=0.5.5 RUN=1
22-
- env: TARGET=powerpc64-unknown-linux-gnu CPP=1 DYLIB=1 STD=1 OPENSSL=0.7.17 RUN=1
23-
- env: TARGET=powerpc64le-unknown-linux-gnu CPP=1 DYLIB=1 STD=1 OPENSSL=0.7.17 RUN=1
24-
- env: TARGET=s390x-unknown-linux-gnu CPP=1 DYLIB=1 STD=1 OPENSSL=0.7.17
25-
- env: TARGET=sparc64-unknown-linux-gnu CPP=1 DYLIB=1 OPENSSL=0.5.5 RUN=1
26-
- env: TARGET=x86_64-unknown-linux-gnu CPP=1 DYLIB=1 OPENSSL=0.5.5 RUN=1 DEPLOY=1
27-
- env: TARGET=x86_64-unknown-linux-musl STD=1 OPENSSL=0.5.5 RUN=1 DEPLOY=1
15+
# - env: TARGET=armv7-unknown-linux-musleabihf STD=1 RUN=1
16+
# - env: TARGET=i686-unknown-linux-gnu CPP=1 DYLIB=1 STD=1 OPENSSL=0.5.5 RUN=1
17+
# - env: TARGET=i686-unknown-linux-musl STD=1 OPENSSL=0.5.5 RUN=1
18+
# - env: TARGET=mips-unknown-linux-gnu CPP=1 DYLIB=1 STD=1 OPENSSL=0.5.5 RUN=1
19+
# - env: TARGET=mips64-unknown-linux-gnuabi64 CPP=1 DYLIB=1 STD=1 OPENSSL=0.7.17 RUN=1
20+
# - env: TARGET=mips64el-unknown-linux-gnuabi64 CPP=1 DYLIB=1 STD=1 OPENSSL=0.7.17 RUN=1
21+
# - env: TARGET=mipsel-unknown-linux-gnu CPP=1 DYLIB=1 STD=1 OPENSSL=0.5.5 RUN=1
22+
# - env: TARGET=powerpc-unknown-linux-gnu CPP=1 DYLIB=1 STD=1 OPENSSL=0.5.5 RUN=1
23+
# - env: TARGET=powerpc64-unknown-linux-gnu CPP=1 DYLIB=1 STD=1 OPENSSL=0.7.17 RUN=1
24+
# - env: TARGET=powerpc64le-unknown-linux-gnu CPP=1 DYLIB=1 STD=1 OPENSSL=0.7.17 RUN=1
25+
# - env: TARGET=s390x-unknown-linux-gnu CPP=1 DYLIB=1 STD=1 OPENSSL=0.7.17
26+
# - env: TARGET=sparc64-unknown-linux-gnu CPP=1 DYLIB=1 OPENSSL=0.5.5 RUN=1
27+
# - env: TARGET=x86_64-unknown-linux-gnu CPP=1 DYLIB=1 OPENSSL=0.5.5 RUN=1 DEPLOY=1
28+
# - env: TARGET=x86_64-unknown-linux-musl STD=1 OPENSSL=0.5.5 RUN=1 DEPLOY=1
2829

2930
# Android
30-
- env: TARGET=aarch64-linux-android CPP=1 STD=1 OPENSSL=0.5.5 RUN=1
31-
- env: TARGET=arm-linux-androideabi CPP=1 STD=1 OPENSSL=0.5.5 RUN=1
32-
- env: TARGET=armv7-linux-androideabi CPP=1 STD=1 OPENSSL=0.5.5 RUN=1
31+
# - env: TARGET=aarch64-linux-android CPP=1 STD=1 OPENSSL=0.5.5 RUN=1
32+
# - env: TARGET=arm-linux-androideabi CPP=1 STD=1 OPENSSL=0.5.5 RUN=1
33+
# - env: TARGET=armv7-linux-androideabi CPP=1 STD=1 OPENSSL=0.5.5 RUN=1
3334
# NOTE RUN=1 missing due to issue #143
34-
- env: TARGET=i686-linux-android CPP=1 STD=1 OPENSSL=0.5.5
35-
- env: TARGET=x86_64-linux-android CPP=1 STD=1 OPENSSL=0.5.5 RUN=1
35+
# - env: TARGET=i686-linux-android CPP=1 STD=1 OPENSSL=0.5.5
36+
# - env: TARGET=x86_64-linux-android CPP=1 STD=1 OPENSSL=0.5.5 RUN=1
3637

3738
# OSX
38-
- env: TARGET=i686-apple-darwin DYLIB=1 STD=1 RUN=1
39-
os: osx
40-
- env: TARGET=x86_64-apple-darwin DYLIB=1 STD=1 RUN=1 DEPLOY=1
41-
os: osx
39+
# - env: TARGET=i686-apple-darwin DYLIB=1 STD=1 RUN=1
40+
# os: osx
41+
# - env: TARGET=x86_64-apple-darwin DYLIB=1 STD=1 RUN=1 DEPLOY=1
42+
# os: osx
4243

4344
# BSD
44-
- env: TARGET=i686-unknown-freebsd DYLIB=1 STD=1 OPENSSL=0.7.17
45-
- env: TARGET=x86_64-unknown-dragonfly DYLIB=1 OPENSSL=0.5.5
46-
- env: TARGET=x86_64-unknown-freebsd DYLIB=1 STD=1 OPENSSL=0.5.5
47-
- env: TARGET=x86_64-unknown-netbsd DYLIB=1 STD=1 OPENSSL=0.7.17
45+
# - env: TARGET=i686-unknown-freebsd DYLIB=1 STD=1 OPENSSL=0.7.17
46+
# - env: TARGET=x86_64-unknown-dragonfly DYLIB=1 OPENSSL=0.5.5
47+
# - env: TARGET=x86_64-unknown-freebsd DYLIB=1 STD=1 OPENSSL=0.5.5
48+
# - env: TARGET=x86_64-unknown-netbsd DYLIB=1 STD=1 OPENSSL=0.7.17
4849

4950
# Solaris
50-
- env: TARGET=sparcv9-sun-solaris DYLIB=1 STD=1 OPENSSL=0.7.17
51-
- env: TARGET=x86_64-sun-solaris DYLIB=1 STD=1 OPENSSL=0.7.17
51+
# - env: TARGET=sparcv9-sun-solaris DYLIB=1 STD=1 OPENSSL=0.7.17
52+
# - env: TARGET=x86_64-sun-solaris DYLIB=1 STD=1 OPENSSL=0.7.17
5253

5354
# Windows
54-
- env: TARGET=x86_64-pc-windows-gnu CPP=1 STD=1 RUN=1
55-
- env: TARGET=i686-pc-windows-gnu CPP=1 STD=1 RUN=1
55+
# - env: TARGET=x86_64-pc-windows-gnu CPP=1 STD=1 RUN=1
56+
# - env: TARGET=i686-pc-windows-gnu CPP=1 STD=1 RUN=1
5657

5758
# Emscripten
58-
- env: TARGET=asmjs-unknown-emscripten CPP=1 STD=1 RUN=1
59-
- env: TARGET=wasm32-unknown-emscripten CPP=1 STD=1 RUN=1
59+
# - env: TARGET=asmjs-unknown-emscripten CPP=1 STD=1 RUN=1
60+
# - env: TARGET=wasm32-unknown-emscripten CPP=1 STD=1 RUN=1
6061
# work around rust-lang/cargo#4689
61-
rust: nightly-2017-10-24
62+
# rust: nightly-2017-10-24
6263

6364
# Bare metal
64-
- env: TARGET=thumbv6m-none-eabi RUN=1
65-
- env: TARGET=thumbv7em-none-eabi RUN=1
66-
- env: TARGET=thumbv7em-none-eabihf RUN=1
67-
- env: TARGET=thumbv7m-none-eabi RUN=1
65+
# - env: TARGET=thumbv6m-none-eabi RUN=1
66+
# - env: TARGET=thumbv7em-none-eabi RUN=1
67+
# - env: TARGET=thumbv7em-none-eabihf RUN=1
68+
# - env: TARGET=thumbv7m-none-eabi RUN=1
6869

6970
install:
7071
- curl https://sh.rustup.rs -sSf |

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
55

66
## [Unreleased]
77

8+
- add support for arm-unknown-linux-gnueabihf
9+
810
## [v0.1.13] - 2017-11-08
911

1012
### Added

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ worst, "hang" (never terminate).
193193
| `aarch64-unknown-linux-gnu` | 2.19 | 4.8.2 | 1.0.2m || 2.8.0 ||
194194
| `arm-linux-androideabi` [5] | N/A | 4.9 | 1.0.2m || N/A ||
195195
| `arm-unknown-linux-gnueabi` | 2.19 | 4.8.2 | 1.0.2m || 2.8.0 ||
196+
| `arm-unknown-linux-gnueabihf` | 2.19 | 4.8.2 | 1.0.2m || 2.8.0 ||
196197
| `arm-unknown-linux-musleabi` | 1.1.15 | 5.3.1 | N/A | | 2.8.0 ||
197198
| `armv7-linux-androideabi` [5] | N/A | 4.9 | 1.0.2m || N/A ||
198199
| `armv7-unknown-linux-gnueabihf` | 2.15 | 4.6.2 | 1.0.2m || 2.8.0 ||
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
FROM ubuntu:14.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+
curl \
11+
gperf \
12+
pkg-config
13+
14+
COPY crosstool-ng.sh /
15+
RUN bash /crosstool-ng.sh
16+
ENV PATH=$PATH:/x-tools/arm-unknown-linux-gnueabi/bin
17+
18+
COPY xargo.sh /
19+
RUN bash /xargo.sh
20+
21+
COPY openssl.sh qemu.sh /
22+
RUN apt-get install -y --no-install-recommends \
23+
g++-arm-linux-gnueabihf \
24+
libc6-dev-armhf-cross && \
25+
bash /openssl.sh linux-armv4 arm-linux-gnueabihf- && \
26+
bash /qemu.sh arm
27+
28+
ENV CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABI_LINKER=arm-linux-gnueabihf-gcc \
29+
CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABI_RUNNER=qemu-arm \
30+
CC_arm_unknown_linux_gnueabi=arm-linux-gnueabihf-gcc \
31+
CXX_arm_unknown_linux_gnueabi=arm-linux-gnueabihf-g++ \
32+
OPENSSL_DIR=/openssl \
33+
OPENSSL_INCLUDE_DIR=/openssl/include \
34+
OPENSSL_LIB_DIR=/openssl/lib \
35+
QEMU_LD_PREFIX=/usr/arm-linux-gnueabihf \
36+
RUST_TEST_THREADS=1

docker/crosstool-ng.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Copyright 2017 The Rust Project Developers. See the COPYRIGHT
2+
# file at the top-level directory of this distribution and at
3+
# http://rust-lang.org/COPYRIGHT.
4+
#
5+
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
# option. This file may not be copied, modified, or distributed
9+
# except according to those terms.
10+
11+
set -ex
12+
13+
url="http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.22.0.tar.bz2"
14+
curl -f $url | tar xjf -
15+
cd crosstool-ng
16+
./configure --prefix=/usr/local
17+
make -j$(nproc)
18+
make install
19+
cd ..
20+
rm -rf crosstool-ng

src/main.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ pub enum Target {
9595
// Linux
9696
Aarch64UnknownLinuxGnu,
9797
ArmUnknownLinuxGnueabi,
98+
ArmUnknownLinuxGnueabihf,
9899
ArmUnknownLinuxMusleabi,
99100
Armv7UnknownLinuxGnueabihf,
100101
Armv7UnknownLinuxMusleabihf,
@@ -196,6 +197,7 @@ impl Target {
196197
match *self {
197198
Target::Aarch64UnknownLinuxGnu |
198199
Target::ArmUnknownLinuxGnueabi |
200+
Target::ArmUnknownLinuxGnueabihf |
199201
Target::ArmUnknownLinuxMusleabi |
200202
Target::Armv7UnknownLinuxGnueabihf |
201203
Target::Armv7UnknownLinuxMusleabihf |
@@ -257,6 +259,7 @@ impl Target {
257259
Aarch64UnknownLinuxGnu => "aarch64-unknown-linux-gnu",
258260
ArmLinuxAndroideabi => "arm-linux-androideabi",
259261
ArmUnknownLinuxGnueabi => "arm-unknown-linux-gnueabi",
262+
ArmUnknownLinuxGnueabihf => "arm-unknown-linux-gnueabihf",
260263
ArmUnknownLinuxMusleabi => "arm-unknown-linux-musleabi",
261264
Armv7LinuxAndroideabi => "armv7-linux-androideabi",
262265
Armv7UnknownLinuxGnueabihf => "armv7-unknown-linux-gnueabihf",
@@ -309,6 +312,7 @@ impl Target {
309312
"aarch64-unknown-linux-gnu" => Aarch64UnknownLinuxGnu,
310313
"arm-linux-androideabi" => ArmLinuxAndroideabi,
311314
"arm-unknown-linux-gnueabi" => ArmUnknownLinuxGnueabi,
315+
"arm-unknown-linux-gnueabihf" => ArmUnknownLinuxGnueabihf,
312316
"arm-unknown-linux-musleabi" => ArmUnknownLinuxMusleabi,
313317
"armv7-linux-androideabi" => Armv7LinuxAndroideabi,
314318
"armv7-unknown-linux-gnueabihf" => Armv7UnknownLinuxGnueabihf,

0 commit comments

Comments
 (0)