|
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