1#=================
2# Update clang to a version with improved tsan and fuzzing capabilities
3
4RUN git clone -n -b release_38 http://llvm.org/git/llvm.git && ${'\\'}
5  cd llvm && git checkout ad57503 && cd ..
6RUN git clone -n -b release_38 http://llvm.org/git/clang.git && ${'\\'}
7  cd clang && git checkout ad2c56e && cd ..
8RUN git clone -n -b release_38 http://llvm.org/git/compiler-rt.git && ${'\\'}
9  cd compiler-rt && git checkout 3176922 && cd ..
10RUN git clone -n -b release_38 ${'\\'}
11  http://llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && ${'\\'}
12  git checkout c288525 && cd ..
13RUN git clone -n -b release_38 http://llvm.org/git/libcxx.git && ${'\\'}
14  cd libcxx && git checkout fda3549  && cd ..
15RUN git clone -n -b release_38 http://llvm.org/git/libcxxabi.git && ${'\\'}
16  cd libcxxabi && git checkout 8d4e51d && cd ..
17
18RUN mv clang llvm/tools
19RUN mv compiler-rt llvm/projects
20RUN mv clang-tools-extra llvm/tools/clang/tools
21RUN mv libcxx llvm/projects
22RUN mv libcxxabi llvm/projects
23
24RUN mkdir llvm-build
25RUN cd llvm-build && cmake ${'\\'}
26  -DCMAKE_BUILD_TYPE:STRING=Release ${'\\'}
27  -DCMAKE_INSTALL_PREFIX:STRING=/usr ${'\\'}
28  -DLLVM_TARGETS_TO_BUILD:STRING=X86 ${'\\'}
29  ../llvm
30RUN make -C llvm-build -j 12 && make -C llvm-build install && rm -rf llvm-build
31