]>
Commit | Line | Data |
---|---|---|
abe05a73 | 1 | #!/usr/bin/env bash |
32a655c1 SL |
2 | # Copyright 2017 The Rust Project Developers. See the COPYRIGHT |
3 | # file at the top-level directory of this distribution and at | |
4 | # http://rust-lang.org/COPYRIGHT. | |
5 | # | |
6 | # Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or | |
7 | # http://www.apache.org/licenses/LICENSE-2.0> or the MIT license | |
8 | # <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your | |
9 | # option. This file may not be copied, modified, or distributed | |
10 | # except according to those terms. | |
11 | ||
12 | set -ex | |
13 | ||
abe05a73 | 14 | MUSL=1.1.17 |
32a655c1 SL |
15 | |
16 | hide_output() { | |
17 | set +x | |
18 | on_err=" | |
19 | echo ERROR: An error was encountered with the build. | |
20 | cat /tmp/build.log | |
21 | exit 1 | |
22 | " | |
23 | trap "$on_err" ERR | |
24 | bash -c "while true; do sleep 30; echo \$(date) - building ...; done" & | |
25 | PING_LOOP_PID=$! | |
26 | $@ &> /tmp/build.log | |
27 | trap - ERR | |
28 | kill $PING_LOOP_PID | |
29 | rm /tmp/build.log | |
30 | set -x | |
31 | } | |
32 | ||
33 | curl -O https://www.musl-libc.org/releases/musl-$MUSL.tar.gz | |
34 | tar xf musl-$MUSL.tar.gz | |
35 | cd musl-$MUSL | |
36 | CC=arm-linux-gnueabi-gcc \ | |
37 | CFLAGS="-march=armv6 -marm" \ | |
38 | hide_output ./configure \ | |
39 | --prefix=/usr/local/arm-linux-musleabi \ | |
40 | --enable-wrapper=gcc | |
41 | hide_output make -j$(nproc) | |
42 | hide_output make install | |
43 | cd .. | |
44 | rm -rf musl-$MUSL | |
45 | ||
46 | tar xf musl-$MUSL.tar.gz | |
47 | cd musl-$MUSL | |
48 | CC=arm-linux-gnueabihf-gcc \ | |
49 | CFLAGS="-march=armv6 -marm" \ | |
50 | hide_output ./configure \ | |
51 | --prefix=/usr/local/arm-linux-musleabihf \ | |
52 | --enable-wrapper=gcc | |
53 | hide_output make -j$(nproc) | |
54 | hide_output make install | |
55 | cd .. | |
56 | rm -rf musl-$MUSL | |
57 | ||
58 | tar xf musl-$MUSL.tar.gz | |
59 | cd musl-$MUSL | |
60 | CC=arm-linux-gnueabihf-gcc \ | |
61 | CFLAGS="-march=armv7-a" \ | |
62 | hide_output ./configure \ | |
63 | --prefix=/usr/local/armv7-linux-musleabihf \ | |
64 | --enable-wrapper=gcc | |
65 | hide_output make -j$(nproc) | |
66 | hide_output make install | |
67 | cd .. | |
ea8adc8c XL |
68 | rm -rf musl-$MUSL |
69 | ||
70 | tar xf musl-$MUSL.tar.gz | |
71 | cd musl-$MUSL | |
72 | CC=aarch64-linux-gnu-gcc \ | |
73 | CFLAGS="" \ | |
74 | hide_output ./configure \ | |
75 | --prefix=/usr/local/aarch64-linux-musl \ | |
76 | --enable-wrapper=gcc | |
77 | hide_output make -j$(nproc) | |
78 | hide_output make install | |
79 | cd .. | |
32a655c1 SL |
80 | rm -rf musl-$MUSL* |
81 | ||
82 | ln -nsf ../arm-linux-musleabi/bin/musl-gcc /usr/local/bin/arm-linux-musleabi-gcc | |
83 | ln -nsf ../arm-linux-musleabihf/bin/musl-gcc /usr/local/bin/arm-linux-musleabihf-gcc | |
84 | ln -nsf ../armv7-linux-musleabihf/bin/musl-gcc /usr/local/bin/armv7-linux-musleabihf-gcc | |
ea8adc8c | 85 | ln -nsf ../aarch64-linux-musl/bin/musl-gcc /usr/local/bin/aarch64-unknown-linux-musl-gcc |
32a655c1 SL |
86 | |
87 | curl -L https://github.com/llvm-mirror/llvm/archive/release_39.tar.gz | tar xzf - | |
88 | curl -L https://github.com/llvm-mirror/libunwind/archive/release_39.tar.gz | tar xzf - | |
89 | ||
90 | mkdir libunwind-build | |
91 | cd libunwind-build | |
92 | cmake ../libunwind-release_39 \ | |
93 | -DLLVM_PATH=/tmp/llvm-release_39 \ | |
94 | -DLIBUNWIND_ENABLE_SHARED=0 \ | |
95 | -DCMAKE_C_COMPILER=arm-linux-gnueabi-gcc \ | |
96 | -DCMAKE_CXX_COMPILER=arm-linux-gnueabi-g++ \ | |
97 | -DCMAKE_C_FLAGS="-march=armv6 -marm" \ | |
98 | -DCMAKE_CXX_FLAGS="-march=armv6 -marm" | |
99 | make -j$(nproc) | |
100 | cp lib/libunwind.a /usr/local/arm-linux-musleabi/lib | |
101 | cd .. | |
102 | rm -rf libunwind-build | |
103 | ||
104 | mkdir libunwind-build | |
105 | cd libunwind-build | |
106 | cmake ../libunwind-release_39 \ | |
107 | -DLLVM_PATH=/tmp/llvm-release_39 \ | |
108 | -DLIBUNWIND_ENABLE_SHARED=0 \ | |
109 | -DCMAKE_C_COMPILER=arm-linux-gnueabihf-gcc \ | |
110 | -DCMAKE_CXX_COMPILER=arm-linux-gnueabihf-g++ \ | |
111 | -DCMAKE_C_FLAGS="-march=armv6 -marm" \ | |
112 | -DCMAKE_CXX_FLAGS="-march=armv6 -marm" | |
113 | make -j$(nproc) | |
114 | cp lib/libunwind.a /usr/local/arm-linux-musleabihf/lib | |
115 | cd .. | |
116 | rm -rf libunwind-build | |
117 | ||
118 | mkdir libunwind-build | |
119 | cd libunwind-build | |
120 | cmake ../libunwind-release_39 \ | |
121 | -DLLVM_PATH=/tmp/llvm-release_39 \ | |
122 | -DLIBUNWIND_ENABLE_SHARED=0 \ | |
123 | -DCMAKE_C_COMPILER=arm-linux-gnueabihf-gcc \ | |
124 | -DCMAKE_CXX_COMPILER=arm-linux-gnueabihf-g++ \ | |
125 | -DCMAKE_C_FLAGS="-march=armv7-a" \ | |
126 | -DCMAKE_CXX_FLAGS="-march=armv7-a" | |
127 | make -j$(nproc) | |
128 | cp lib/libunwind.a /usr/local/armv7-linux-musleabihf/lib | |
129 | cd .. | |
130 | rm -rf libunwind-build | |
131 | ||
ea8adc8c XL |
132 | mkdir libunwind-build |
133 | cd libunwind-build | |
134 | cmake ../libunwind-release_39 \ | |
135 | -DLLVM_PATH=/tmp/llvm-release_39 \ | |
136 | -DLIBUNWIND_ENABLE_SHARED=0 \ | |
137 | -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc \ | |
138 | -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ \ | |
139 | -DCMAKE_C_FLAGS="" \ | |
140 | -DCMAKE_CXX_FLAGS="" | |
141 | make -j$(nproc) | |
142 | cp lib/libunwind.a /usr/local/aarch64-linux-musl/lib | |
143 | cd .. | |
144 | rm -rf libunwind-build | |
145 | ||
32a655c1 SL |
146 | rm -rf libunwind-release_39 |
147 | rm -rf llvm-release_39 |