|
14 | 14 | set -ex |
15 | 15 | source shared.sh |
16 | 16 |
|
17 | | -# Download sources |
18 | | -SRCS=( |
19 | | - "https://fuchsia.googlesource.com/magenta magenta d17073dc8de344ead3b65e8cc6a12280dec38c84" |
20 | | - "https://llvm.googlesource.com/llvm llvm 3f58a16d8eec385e2b3ebdfbb84ff9d3bf27e025" |
21 | | - "https://llvm.googlesource.com/clang llvm/tools/clang 727ea63e6e82677f6e10e05e08bc7d6bdbae3111" |
22 | | - "https://llvm.googlesource.com/lld llvm/tools/lld a31286c1366e5e89b8872803fded13805a1a084b" |
23 | | - "https://llvm.googlesource.com/lldb llvm/tools/lldb 0b2384abec4cb99ad66687712e07dee4dd9d187e" |
24 | | - "https://llvm.googlesource.com/compiler-rt llvm/runtimes/compiler-rt 9093a35c599fe41278606a20b51095ea8bd5a081" |
25 | | - "https://llvm.googlesource.com/libcxx llvm/runtimes/libcxx 607e0c71ec4f7fd377ad3f6c47b08dbe89f66eaa" |
26 | | - "https://llvm.googlesource.com/libcxxabi llvm/runtimes/libcxxabi 0a3a1a8a5ca5ef69e0f6b7d5b9d13e63e6fd2c19" |
27 | | - "https://llvm.googlesource.com/libunwind llvm/runtimes/libunwind e128003563d99d9ee62247c4cee40f07d21c03e3" |
28 | | -) |
29 | | - |
30 | | -fetch() { |
31 | | - mkdir -p $2 |
32 | | - pushd $2 > /dev/null |
33 | | - git init |
34 | | - git remote add origin $1 |
35 | | - git fetch --depth=1 origin $3 |
36 | | - git reset --hard FETCH_HEAD |
37 | | - popd > /dev/null |
38 | | -} |
| 17 | +ZIRCON=e9a26dbc70d631029f8ee9763103910b7e3a2fe1 |
39 | 18 |
|
40 | | -for i in "${SRCS[@]}"; do |
41 | | - fetch $i |
42 | | -done |
| 19 | +mkdir -p zircon |
| 20 | +pushd zircon > /dev/null |
43 | 21 |
|
44 | | -# Remove this once https://reviews.llvm.org/D28791 is resolved |
45 | | -cd llvm/runtimes/compiler-rt |
46 | | -patch -Np1 < /tmp/compiler-rt-dso-handle.patch |
47 | | -cd ../../.. |
| 22 | +# Download sources |
| 23 | +git init |
| 24 | +git remote add origin https://fuchsia.googlesource.com/zircon |
| 25 | +git fetch --depth=1 origin $ZIRCON |
| 26 | +git reset --hard FETCH_HEAD |
48 | 27 |
|
49 | | -# Build toolchain |
50 | | -cd llvm |
51 | | -mkdir build |
52 | | -cd build |
53 | | -hide_output cmake -GNinja \ |
54 | | - -DFUCHSIA_SYSROOT=${PWD}/../../magenta/third_party/ulib/musl \ |
55 | | - -DLLVM_ENABLE_LTO=OFF \ |
56 | | - -DCLANG_BOOTSTRAP_PASSTHROUGH=LLVM_ENABLE_LTO \ |
57 | | - -C ../tools/clang/cmake/caches/Fuchsia.cmake \ |
58 | | - .. |
59 | | -hide_output ninja stage2-distribution |
60 | | -hide_output ninja stage2-install-distribution |
61 | | -cd ../.. |
| 28 | +# Download toolchain |
| 29 | +./scripts/download-toolchain |
| 30 | +chmod -R a+rx prebuilt/downloads/clang+llvm-x86_64-linux |
| 31 | +cp -a prebuilt/downloads/clang+llvm-x86_64-linux/. /usr/local |
62 | 32 |
|
63 | | -# Build sysroot |
64 | | -rm -rf llvm/runtimes/compiler-rt |
65 | | -./magenta/scripts/download-toolchain |
66 | | - |
67 | | -build_sysroot() { |
| 33 | +build() { |
68 | 34 | local arch="$1" |
69 | 35 |
|
70 | 36 | case "${arch}" in |
71 | | - x86_64) tgt="magenta-pc-x86-64" ;; |
72 | | - aarch64) tgt="magenta-qemu-arm64" ;; |
| 37 | + x86_64) tgt="zircon-pc-x86-64" ;; |
| 38 | + aarch64) tgt="zircon-qemu-arm64" ;; |
73 | 39 | esac |
74 | 40 |
|
75 | | - hide_output make -C magenta -j$(getconf _NPROCESSORS_ONLN) $tgt |
| 41 | + hide_output make -j$(getconf _NPROCESSORS_ONLN) $tgt |
76 | 42 | dst=/usr/local/${arch}-unknown-fuchsia |
77 | 43 | mkdir -p $dst |
78 | | - cp -r magenta/build-${tgt}/sysroot/include $dst/ |
79 | | - cp -r magenta/build-${tgt}/sysroot/lib $dst/ |
80 | | - |
81 | | - cd llvm |
82 | | - mkdir build-runtimes-${arch} |
83 | | - cd build-runtimes-${arch} |
84 | | - hide_output cmake -GNinja \ |
85 | | - -DCMAKE_C_COMPILER=clang \ |
86 | | - -DCMAKE_CXX_COMPILER=clang++ \ |
87 | | - -DCMAKE_AR=/usr/local/bin/llvm-ar \ |
88 | | - -DCMAKE_RANLIB=/usr/local/bin/llvm-ranlib \ |
89 | | - -DCMAKE_INSTALL_PREFIX= \ |
90 | | - -DLLVM_MAIN_SRC_DIR=${PWD}/.. \ |
91 | | - -DLLVM_BINARY_DIR=${PWD}/../build \ |
92 | | - -DLLVM_ENABLE_WERROR=OFF \ |
93 | | - -DCMAKE_BUILD_TYPE=Release \ |
94 | | - -DLLVM_INCLUDE_TESTS=ON \ |
95 | | - -DCMAKE_SYSTEM_NAME=Fuchsia \ |
96 | | - -DCMAKE_C_COMPILER_TARGET=${arch}-fuchsia \ |
97 | | - -DCMAKE_CXX_COMPILER_TARGET=${arch}-fuchsia \ |
98 | | - -DUNIX=1 \ |
99 | | - -DLIBCXX_HAS_MUSL_LIBC=ON \ |
100 | | - -DLIBCXXABI_USE_LLVM_UNWINDER=ON \ |
101 | | - -DCMAKE_SYSROOT=${dst} \ |
102 | | - -DCMAKE_C_COMPILER_FORCED=TRUE \ |
103 | | - -DCMAKE_CXX_COMPILER_FORCED=TRUE \ |
104 | | - -DLLVM_ENABLE_LIBCXX=ON \ |
105 | | - -DCMAKE_EXE_LINKER_FLAGS="-nodefaultlibs -lc" \ |
106 | | - -DCMAKE_SHARED_LINKER_FLAGS="$(clang --target=${arch}-fuchsia -print-libgcc-file-name)" \ |
107 | | - ../runtimes |
108 | | - hide_output env DESTDIR="${dst}" ninja install |
109 | | - cd ../.. |
| 44 | + cp -a build-${tgt}/sysroot/include $dst/ |
| 45 | + cp -a build-${tgt}/sysroot/lib $dst/ |
110 | 46 | } |
111 | 47 |
|
112 | | -build_sysroot "x86_64" |
113 | | -build_sysroot "aarch64" |
| 48 | +# Build sysroot |
| 49 | +for arch in x86_64 aarch64; do |
| 50 | + build ${arch} |
| 51 | +done |
114 | 52 |
|
115 | | -rm -rf magenta llvm |
| 53 | +popd > /dev/null |
| 54 | +rm -rf zircon |
116 | 55 |
|
117 | 56 | for arch in x86_64 aarch64; do |
118 | 57 | for tool in clang clang++; do |
|
0 commit comments