Skip to content

Instantly share code, notes, and snippets.

@Ujang360
Forked from bhaskarvk/Setup GCC and CLANG Toolchains.md
Last active January 14, 2021 09:53
Show Gist options
  • Save Ujang360/50b250aa944d998823da7f0730fcca48 to your computer and use it in GitHub Desktop.
Save Ujang360/50b250aa944d998823da7f0730fcca48 to your computer and use it in GitHub Desktop.
Proper GCC (vers. 5/6/7/8) & LLVM/CLANG (vers. 4/5/6/7/8) Toolchain Setup on Ubuntu 18.04
#!/usr/bin/env sh
# Remove all existing alternatives
sudo update-alternatives --remove-all cc
# exit on first error
set -e
sudo update-alternatives \
--install /usr/bin/cc cc /usr/bin/gcc 30 \
--slave /usr/bin/c++ c++ /usr/bin/g++ \
--slave /usr/bin/ld ld /usr/bin/x86_64-linux-gnu-ld
sudo update-alternatives \
--install /usr/bin/cc cc /usr/bin/clang 20 \
--slave /usr/bin/c++ c++ /usr/bin/clang++ \
--slave /usr/bin/ld ld /usr/bin/lld
#!/usr/bin/env sh
# Remove all existing alternatives
sudo update-alternatives --remove-all gcc
# exit on first error
set -e
# To install gcc toolchain versions 5/6/7/8.
sudo apt update
sudo apt install -y gcc-5 g++-5 gfortran-5 cpp-5
sudo apt install -y gcc-6 g++-6 gfortran-6 cpp-6
sudo apt install -y gcc-7 g++-7 gfortran-7 cpp-7
sudo apt install -y gcc-8 g++-8 gfortran-8 cpp-8
# GCC 8.x
sudo update-alternatives \
--install /usr/bin/gcc gcc /usr/bin/gcc-8 40 \
--slave /usr/bin/g++ g++ /usr/bin/g++-8 \
--slave /usr/bin/cpp cpp /usr/bin/cpp-8 \
--slave /usr/bin/gfortran gfortran /usr/bin/gfortran-8 \
--slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-8 \
--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-8 \
--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-8 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-8 \
--slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-8 \
--slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-8
# GCC 7.x
sudo update-alternatives \
--install /usr/bin/gcc gcc /usr/bin/gcc-7 30 \
--slave /usr/bin/g++ g++ /usr/bin/g++-7 \
--slave /usr/bin/cpp cpp /usr/bin/cpp-7 \
--slave /usr/bin/gfortran gfortran /usr/bin/gfortran-7 \
--slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-7 \
--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-7 \
--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-7 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-7 \
--slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-7 \
--slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-7
# GCC 6.x
sudo update-alternatives \
--install /usr/bin/gcc gcc /usr/bin/gcc-6 20 \
--slave /usr/bin/g++ g++ /usr/bin/g++-6 \
--slave /usr/bin/cpp cpp /usr/bin/cpp-6 \
--slave /usr/bin/gfortran gfortran /usr/bin/gfortran-6 \
--slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-6 \
--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-6 \
--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-6 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-6 \
--slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-6 \
--slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-6
# GCC 5.x
sudo update-alternatives \
--install /usr/bin/gcc gcc /usr/bin/gcc-5 10 \
--slave /usr/bin/g++ g++ /usr/bin/g++-5 \
--slave /usr/bin/cpp cpp /usr/bin/cpp-5 \
--slave /usr/bin/gfortran gfortran /usr/bin/gfortran-5 \
--slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-5 \
--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-5 \
--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-5 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-5 \
--slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-5 \
--slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-5
#!/usr/bin/env sh
# Remove all existing alternatives
sudo update-alternatives --remove-all llvm
sudo update-alternatives --remove-all clang
# exit on first error
set -e
# To Install llvm/clang 4.0/5.0/6.0/7.0/8.0
sudo apt update
sudo apt install -y clang-8.0 llvm-8.0 lld-8.0 lldb-8.0
sudo apt install clang-{format,tidy,tools}-8.0 clang-8.0-doc clang-8.0-examples
sudo apt install -y clang-7.0 llvm-7.0 lld-7.0 lldb-7.0
sudo apt install clang-{format,tidy,tools}-7.0 clang-7.0-doc clang-7.0-examples
sudo apt install -y clang-6.0 llvm-6.0 lld-6.0 lldb-6.0
sudo apt install clang-{format,tidy,tools}-5.0 clang-5.0-doc clang-5.0-examples
sudo apt install -y clang-5.0 llvm-5.0 lld-5.0 lldb-5.0
sudo apt install clang-{format,tidy,tools}-5.0 clang-5.0-doc clang-5.0-examples
sudo apt install -y clang-4.0 llvm-4.0 lld-4.0 lldb-4.0
sudo apt install clang-{format,tidy,tools}-4.0 clang-4.0-doc clang-4.0-examples
# llvm-8.0 and clang-8.0
sudo update-alternatives \
--install /usr/lib/llvm llvm /usr/lib/llvm-8.0 50 \
--slave /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-8.0 \
--slave /usr/bin/llvm-ar llvm-ar /usr/bin/llvm-ar-8.0 \
--slave /usr/bin/llvm-as llvm-as /usr/bin/llvm-as-8.0 \
--slave /usr/bin/llvm-bcanalyzer llvm-bcanalyzer /usr/bin/llvm-bcanalyzer-8.0 \
--slave /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-8.0 \
--slave /usr/bin/llvm-diff llvm-diff /usr/bin/llvm-diff-8.0 \
--slave /usr/bin/llvm-dis llvm-dis /usr/bin/llvm-dis-8.0 \
--slave /usr/bin/llvm-dwarfdump llvm-dwarfdump /usr/bin/llvm-dwarfdump-8.0 \
--slave /usr/bin/llvm-extract llvm-extract /usr/bin/llvm-extract-8.0 \
--slave /usr/bin/llvm-link llvm-link /usr/bin/llvm-link-8.0 \
--slave /usr/bin/llvm-mc llvm-mc /usr/bin/llvm-mc-8.0 \
--slave /usr/bin/llvm-mcmarkup llvm-mcmarkup /usr/bin/llvm-mcmarkup-8.0 \
--slave /usr/bin/llvm-nm llvm-nm /usr/bin/llvm-nm-8.0 \
--slave /usr/bin/llvm-objdump llvm-objdump /usr/bin/llvm-objdump-8.0 \
--slave /usr/bin/llvm-ranlib llvm-ranlib /usr/bin/llvm-ranlib-8.0 \
--slave /usr/bin/llvm-readobj llvm-readobj /usr/bin/llvm-readobj-8.0 \
--slave /usr/bin/llvm-rtdyld llvm-rtdyld /usr/bin/llvm-rtdyld-8.0 \
--slave /usr/bin/llvm-size llvm-size /usr/bin/llvm-size-8.0 \
--slave /usr/bin/llvm-stress llvm-stress /usr/bin/llvm-stress-8.0 \
--slave /usr/bin/llvm-symbolizer llvm-symbolizer /usr/bin/llvm-symbolizer-8.0 \
--slave /usr/bin/llvm-tblgen llvm-tblgen /usr/bin/llvm-tblgen-8.0
sudo update-alternatives \
--install /usr/bin/clang clang /usr/bin/clang-8.0 50 \
--slave /usr/bin/clang++ clang++ /usr/bin/clang++-8.0 \
--slave /usr/bin/lld lld /usr/bin/lld-8.0 \
--slave /usr/bin/clang-format clang-format /usr/bin/clang-format-8.0 \
--slave /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-8.0 \
--slave /usr/bin/clang-tidy-diff.py clang-tidy-diff.py /usr/bin/clang-tidy-diff-8.0.py \
--slave /usr/bin/clang-include-fixer clang-include-fixer /usr/bin/clang-include-fixer-8.0 \
--slave /usr/bin/clang-offload-bundler clang-offload-bundler /usr/bin/clang-offload-bundler-8.0 \
--slave /usr/bin/clangd clangd /usr/bin/clangd-8.0 \
--slave /usr/bin/clang-check clang-check /usr/bin/clang-check-8.0 \
--slave /usr/bin/scan-view scan-view /usr/bin/scan-view-8.0 \
--slave /usr/bin/clang-apply-replacements clang-apply-replacements /usr/bin/clang-apply-replacements-8.0 \
--slave /usr/bin/clang-query clang-query /usr/bin/clang-query-8.0 \
--slave /usr/bin/modularize modularize /usr/bin/modularize-8.0 \
--slave /usr/bin/sancov sancov /usr/bin/sancov-8.0 \
--slave /usr/bin/c-index-test c-index-test /usr/bin/c-index-test-8.0 \
--slave /usr/bin/clang-reorder-fields clang-reorder-fields /usr/bin/clang-reorder-fields-8.0 \
--slave /usr/bin/clang-change-namespace clang-change-namespace /usr/bin/clang-change-namespace-8.0 \
--slave /usr/bin/clang-import-test clang-import-test /usr/bin/clang-import-test-8.0 \
--slave /usr/bin/scan-build scan-build /usr/bin/scan-build-8.0 \
--slave /usr/bin/scan-build-py scan-build-py /usr/bin/scan-build-py-8.0 \
--slave /usr/bin/clang-cl clang-cl /usr/bin/clang-cl-8.0 \
--slave /usr/bin/clang-rename clang-rename /usr/bin/clang-rename-8.0 \
--slave /usr/bin/find-all-symbols find-all-symbols /usr/bin/find-all-symbols-8.0 \
--slave /usr/bin/lldb lldb /usr/bin/lldb-8.0 \
--slave /usr/bin/lldb-server lldb-server /usr/bin/lldb-server-8.0
# llvm-7.0 and clang-7.0
sudo update-alternatives \
--install /usr/lib/llvm llvm /usr/lib/llvm-7.0 40 \
--slave /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-7.0 \
--slave /usr/bin/llvm-ar llvm-ar /usr/bin/llvm-ar-7.0 \
--slave /usr/bin/llvm-as llvm-as /usr/bin/llvm-as-7.0 \
--slave /usr/bin/llvm-bcanalyzer llvm-bcanalyzer /usr/bin/llvm-bcanalyzer-7.0 \
--slave /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-7.0 \
--slave /usr/bin/llvm-diff llvm-diff /usr/bin/llvm-diff-7.0 \
--slave /usr/bin/llvm-dis llvm-dis /usr/bin/llvm-dis-7.0 \
--slave /usr/bin/llvm-dwarfdump llvm-dwarfdump /usr/bin/llvm-dwarfdump-7.0 \
--slave /usr/bin/llvm-extract llvm-extract /usr/bin/llvm-extract-7.0 \
--slave /usr/bin/llvm-link llvm-link /usr/bin/llvm-link-7.0 \
--slave /usr/bin/llvm-mc llvm-mc /usr/bin/llvm-mc-7.0 \
--slave /usr/bin/llvm-mcmarkup llvm-mcmarkup /usr/bin/llvm-mcmarkup-7.0 \
--slave /usr/bin/llvm-nm llvm-nm /usr/bin/llvm-nm-7.0 \
--slave /usr/bin/llvm-objdump llvm-objdump /usr/bin/llvm-objdump-7.0 \
--slave /usr/bin/llvm-ranlib llvm-ranlib /usr/bin/llvm-ranlib-7.0 \
--slave /usr/bin/llvm-readobj llvm-readobj /usr/bin/llvm-readobj-7.0 \
--slave /usr/bin/llvm-rtdyld llvm-rtdyld /usr/bin/llvm-rtdyld-7.0 \
--slave /usr/bin/llvm-size llvm-size /usr/bin/llvm-size-7.0 \
--slave /usr/bin/llvm-stress llvm-stress /usr/bin/llvm-stress-7.0 \
--slave /usr/bin/llvm-symbolizer llvm-symbolizer /usr/bin/llvm-symbolizer-7.0 \
--slave /usr/bin/llvm-tblgen llvm-tblgen /usr/bin/llvm-tblgen-7.0
sudo update-alternatives \
--install /usr/bin/clang clang /usr/bin/clang-7.0 40 \
--slave /usr/bin/clang++ clang++ /usr/bin/clang++-7.0 \
--slave /usr/bin/lld lld /usr/bin/lld-7.0 \
--slave /usr/bin/clang-format clang-format /usr/bin/clang-format-7.0 \
--slave /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-7.0 \
--slave /usr/bin/clang-tidy-diff.py clang-tidy-diff.py /usr/bin/clang-tidy-diff-7.0.py \
--slave /usr/bin/clang-include-fixer clang-include-fixer /usr/bin/clang-include-fixer-7.0 \
--slave /usr/bin/clang-offload-bundler clang-offload-bundler /usr/bin/clang-offload-bundler-7.0 \
--slave /usr/bin/clangd clangd /usr/bin/clangd-7.0 \
--slave /usr/bin/clang-check clang-check /usr/bin/clang-check-7.0 \
--slave /usr/bin/scan-view scan-view /usr/bin/scan-view-7.0 \
--slave /usr/bin/clang-apply-replacements clang-apply-replacements /usr/bin/clang-apply-replacements-7.0 \
--slave /usr/bin/clang-query clang-query /usr/bin/clang-query-7.0 \
--slave /usr/bin/modularize modularize /usr/bin/modularize-7.0 \
--slave /usr/bin/sancov sancov /usr/bin/sancov-7.0 \
--slave /usr/bin/c-index-test c-index-test /usr/bin/c-index-test-7.0 \
--slave /usr/bin/clang-reorder-fields clang-reorder-fields /usr/bin/clang-reorder-fields-7.0 \
--slave /usr/bin/clang-change-namespace clang-change-namespace /usr/bin/clang-change-namespace-7.0 \
--slave /usr/bin/clang-import-test clang-import-test /usr/bin/clang-import-test-7.0 \
--slave /usr/bin/scan-build scan-build /usr/bin/scan-build-7.0 \
--slave /usr/bin/scan-build-py scan-build-py /usr/bin/scan-build-py-7.0 \
--slave /usr/bin/clang-cl clang-cl /usr/bin/clang-cl-7.0 \
--slave /usr/bin/clang-rename clang-rename /usr/bin/clang-rename-7.0 \
--slave /usr/bin/find-all-symbols find-all-symbols /usr/bin/find-all-symbols-7.0 \
--slave /usr/bin/lldb lldb /usr/bin/lldb-7.0 \
--slave /usr/bin/lldb-server lldb-server /usr/bin/lldb-server-7.0
# llvm-6.0 and clang-6.0
sudo update-alternatives \
--install /usr/lib/llvm llvm /usr/lib/llvm-6.0 30 \
--slave /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-6.0 \
--slave /usr/bin/llvm-ar llvm-ar /usr/bin/llvm-ar-6.0 \
--slave /usr/bin/llvm-as llvm-as /usr/bin/llvm-as-6.0 \
--slave /usr/bin/llvm-bcanalyzer llvm-bcanalyzer /usr/bin/llvm-bcanalyzer-6.0 \
--slave /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-6.0 \
--slave /usr/bin/llvm-diff llvm-diff /usr/bin/llvm-diff-6.0 \
--slave /usr/bin/llvm-dis llvm-dis /usr/bin/llvm-dis-6.0 \
--slave /usr/bin/llvm-dwarfdump llvm-dwarfdump /usr/bin/llvm-dwarfdump-6.0 \
--slave /usr/bin/llvm-extract llvm-extract /usr/bin/llvm-extract-6.0 \
--slave /usr/bin/llvm-link llvm-link /usr/bin/llvm-link-6.0 \
--slave /usr/bin/llvm-mc llvm-mc /usr/bin/llvm-mc-6.0 \
--slave /usr/bin/llvm-mcmarkup llvm-mcmarkup /usr/bin/llvm-mcmarkup-6.0 \
--slave /usr/bin/llvm-nm llvm-nm /usr/bin/llvm-nm-6.0 \
--slave /usr/bin/llvm-objdump llvm-objdump /usr/bin/llvm-objdump-6.0 \
--slave /usr/bin/llvm-ranlib llvm-ranlib /usr/bin/llvm-ranlib-6.0 \
--slave /usr/bin/llvm-readobj llvm-readobj /usr/bin/llvm-readobj-6.0 \
--slave /usr/bin/llvm-rtdyld llvm-rtdyld /usr/bin/llvm-rtdyld-6.0 \
--slave /usr/bin/llvm-size llvm-size /usr/bin/llvm-size-6.0 \
--slave /usr/bin/llvm-stress llvm-stress /usr/bin/llvm-stress-6.0 \
--slave /usr/bin/llvm-symbolizer llvm-symbolizer /usr/bin/llvm-symbolizer-6.0 \
--slave /usr/bin/llvm-tblgen llvm-tblgen /usr/bin/llvm-tblgen-6.0
sudo update-alternatives \
--install /usr/bin/clang clang /usr/bin/clang-6.0 30 \
--slave /usr/bin/clang++ clang++ /usr/bin/clang++-6.0 \
--slave /usr/bin/lld lld /usr/bin/lld-6.0 \
--slave /usr/bin/clang-format clang-format /usr/bin/clang-format-6.0 \
--slave /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-6.0 \
--slave /usr/bin/clang-tidy-diff.py clang-tidy-diff.py /usr/bin/clang-tidy-diff-6.0.py \
--slave /usr/bin/clang-include-fixer clang-include-fixer /usr/bin/clang-include-fixer-6.0 \
--slave /usr/bin/clang-offload-bundler clang-offload-bundler /usr/bin/clang-offload-bundler-6.0 \
--slave /usr/bin/clangd clangd /usr/bin/clangd-6.0 \
--slave /usr/bin/clang-check clang-check /usr/bin/clang-check-6.0 \
--slave /usr/bin/scan-view scan-view /usr/bin/scan-view-6.0 \
--slave /usr/bin/clang-apply-replacements clang-apply-replacements /usr/bin/clang-apply-replacements-6.0 \
--slave /usr/bin/clang-query clang-query /usr/bin/clang-query-6.0 \
--slave /usr/bin/modularize modularize /usr/bin/modularize-6.0 \
--slave /usr/bin/sancov sancov /usr/bin/sancov-6.0 \
--slave /usr/bin/c-index-test c-index-test /usr/bin/c-index-test-6.0 \
--slave /usr/bin/clang-reorder-fields clang-reorder-fields /usr/bin/clang-reorder-fields-6.0 \
--slave /usr/bin/clang-change-namespace clang-change-namespace /usr/bin/clang-change-namespace-6.0 \
--slave /usr/bin/clang-import-test clang-import-test /usr/bin/clang-import-test-6.0 \
--slave /usr/bin/scan-build scan-build /usr/bin/scan-build-6.0 \
--slave /usr/bin/scan-build-py scan-build-py /usr/bin/scan-build-py-6.0 \
--slave /usr/bin/clang-cl clang-cl /usr/bin/clang-cl-6.0 \
--slave /usr/bin/clang-rename clang-rename /usr/bin/clang-rename-6.0 \
--slave /usr/bin/find-all-symbols find-all-symbols /usr/bin/find-all-symbols-6.0 \
--slave /usr/bin/lldb lldb /usr/bin/lldb-6.0 \
--slave /usr/bin/lldb-server lldb-server /usr/bin/lldb-server-6.0
# llvm-5.0 and clang-5.0
sudo update-alternatives \
--install /usr/lib/llvm llvm /usr/lib/llvm-5.0 20 \
--slave /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-5.0 \
--slave /usr/bin/llvm-ar llvm-ar /usr/bin/llvm-ar-5.0 \
--slave /usr/bin/llvm-as llvm-as /usr/bin/llvm-as-5.0 \
--slave /usr/bin/llvm-bcanalyzer llvm-bcanalyzer /usr/bin/llvm-bcanalyzer-5.0 \
--slave /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-5.0 \
--slave /usr/bin/llvm-diff llvm-diff /usr/bin/llvm-diff-5.0 \
--slave /usr/bin/llvm-dis llvm-dis /usr/bin/llvm-dis-5.0 \
--slave /usr/bin/llvm-dwarfdump llvm-dwarfdump /usr/bin/llvm-dwarfdump-5.0 \
--slave /usr/bin/llvm-extract llvm-extract /usr/bin/llvm-extract-5.0 \
--slave /usr/bin/llvm-link llvm-link /usr/bin/llvm-link-5.0 \
--slave /usr/bin/llvm-mc llvm-mc /usr/bin/llvm-mc-5.0 \
--slave /usr/bin/llvm-mcmarkup llvm-mcmarkup /usr/bin/llvm-mcmarkup-5.0 \
--slave /usr/bin/llvm-nm llvm-nm /usr/bin/llvm-nm-5.0 \
--slave /usr/bin/llvm-objdump llvm-objdump /usr/bin/llvm-objdump-5.0 \
--slave /usr/bin/llvm-ranlib llvm-ranlib /usr/bin/llvm-ranlib-5.0 \
--slave /usr/bin/llvm-readobj llvm-readobj /usr/bin/llvm-readobj-5.0 \
--slave /usr/bin/llvm-rtdyld llvm-rtdyld /usr/bin/llvm-rtdyld-5.0 \
--slave /usr/bin/llvm-size llvm-size /usr/bin/llvm-size-5.0 \
--slave /usr/bin/llvm-stress llvm-stress /usr/bin/llvm-stress-5.0 \
--slave /usr/bin/llvm-symbolizer llvm-symbolizer /usr/bin/llvm-symbolizer-5.0 \
--slave /usr/bin/llvm-tblgen llvm-tblgen /usr/bin/llvm-tblgen-5.0
sudo update-alternatives \
--install /usr/bin/clang clang /usr/bin/clang-5.0 20 \
--slave /usr/bin/clang++ clang++ /usr/bin/clang++-5.0 \
--slave /usr/bin/lld lld /usr/bin/lld-5.0 \
--slave /usr/bin/clang-format clang-format /usr/bin/clang-format-5.0 \
--slave /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-5.0 \
--slave /usr/bin/clang-tidy-diff.py clang-tidy-diff.py /usr/bin/clang-tidy-diff-5.0.py \
--slave /usr/bin/clang-include-fixer clang-include-fixer /usr/bin/clang-include-fixer-5.0 \
--slave /usr/bin/clang-offload-bundler clang-offload-bundler /usr/bin/clang-offload-bundler-5.0 \
--slave /usr/bin/clangd clangd /usr/bin/clangd-5.0 \
--slave /usr/bin/clang-check clang-check /usr/bin/clang-check-5.0 \
--slave /usr/bin/scan-view scan-view /usr/bin/scan-view-5.0 \
--slave /usr/bin/clang-apply-replacements clang-apply-replacements /usr/bin/clang-apply-replacements-5.0 \
--slave /usr/bin/clang-query clang-query /usr/bin/clang-query-5.0 \
--slave /usr/bin/modularize modularize /usr/bin/modularize-5.0 \
--slave /usr/bin/sancov sancov /usr/bin/sancov-5.0 \
--slave /usr/bin/c-index-test c-index-test /usr/bin/c-index-test-5.0 \
--slave /usr/bin/clang-reorder-fields clang-reorder-fields /usr/bin/clang-reorder-fields-5.0 \
--slave /usr/bin/clang-change-namespace clang-change-namespace /usr/bin/clang-change-namespace-5.0 \
--slave /usr/bin/clang-import-test clang-import-test /usr/bin/clang-import-test-5.0 \
--slave /usr/bin/scan-build scan-build /usr/bin/scan-build-5.0 \
--slave /usr/bin/scan-build-py scan-build-py /usr/bin/scan-build-py-5.0 \
--slave /usr/bin/clang-cl clang-cl /usr/bin/clang-cl-5.0 \
--slave /usr/bin/clang-rename clang-rename /usr/bin/clang-rename-5.0 \
--slave /usr/bin/find-all-symbols find-all-symbols /usr/bin/find-all-symbols-5.0 \
--slave /usr/bin/lldb lldb /usr/bin/lldb-5.0 \
--slave /usr/bin/lldb-server lldb-server /usr/bin/lldb-server-5.0
# llvm-4.0 and clang-4.0
sudo update-alternatives \
--install /usr/lib/llvm llvm /usr/lib/llvm-4.0 10 \
--slave /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-4.0 \
--slave /usr/bin/llvm-ar llvm-ar /usr/bin/llvm-ar-4.0 \
--slave /usr/bin/llvm-as llvm-as /usr/bin/llvm-as-4.0 \
--slave /usr/bin/llvm-bcanalyzer llvm-bcanalyzer /usr/bin/llvm-bcanalyzer-4.0 \
--slave /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-4.0 \
--slave /usr/bin/llvm-diff llvm-diff /usr/bin/llvm-diff-4.0 \
--slave /usr/bin/llvm-dis llvm-dis /usr/bin/llvm-dis-4.0 \
--slave /usr/bin/llvm-dwarfdump llvm-dwarfdump /usr/bin/llvm-dwarfdump-4.0 \
--slave /usr/bin/llvm-extract llvm-extract /usr/bin/llvm-extract-4.0 \
--slave /usr/bin/llvm-link llvm-link /usr/bin/llvm-link-4.0 \
--slave /usr/bin/llvm-mc llvm-mc /usr/bin/llvm-mc-4.0 \
--slave /usr/bin/llvm-mcmarkup llvm-mcmarkup /usr/bin/llvm-mcmarkup-4.0 \
--slave /usr/bin/llvm-nm llvm-nm /usr/bin/llvm-nm-4.0 \
--slave /usr/bin/llvm-objdump llvm-objdump /usr/bin/llvm-objdump-4.0 \
--slave /usr/bin/llvm-ranlib llvm-ranlib /usr/bin/llvm-ranlib-4.0 \
--slave /usr/bin/llvm-readobj llvm-readobj /usr/bin/llvm-readobj-4.0 \
--slave /usr/bin/llvm-rtdyld llvm-rtdyld /usr/bin/llvm-rtdyld-4.0 \
--slave /usr/bin/llvm-size llvm-size /usr/bin/llvm-size-4.0 \
--slave /usr/bin/llvm-stress llvm-stress /usr/bin/llvm-stress-4.0 \
--slave /usr/bin/llvm-symbolizer llvm-symbolizer /usr/bin/llvm-symbolizer-4.0 \
--slave /usr/bin/llvm-tblgen llvm-tblgen /usr/bin/llvm-tblgen-4.0
sudo update-alternatives \
--install /usr/bin/clang clang /usr/bin/clang-4.0 10 \
--slave /usr/bin/clang++ clang++ /usr/bin/clang++-4.0 \
--slave /usr/bin/lld lld /usr/bin/lld-4.0 \
--slave /usr/bin/clang-format clang-format /usr/bin/clang-format-4.0 \
--slave /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-4.0 \
--slave /usr/bin/clang-tidy-diff.py clang-tidy-diff.py /usr/bin/clang-tidy-diff-4.0.py \
--slave /usr/bin/clang-include-fixer clang-include-fixer /usr/bin/clang-include-fixer-4.0 \
--slave /usr/bin/clang-offload-bundler clang-offload-bundler /usr/bin/clang-offload-bundler-4.0 \
--slave /usr/bin/clangd clangd /usr/bin/clangd-4.0 \
--slave /usr/bin/clang-check clang-check /usr/bin/clang-check-4.0 \
--slave /usr/bin/scan-view scan-view /usr/bin/scan-view-4.0 \
--slave /usr/bin/clang-apply-replacements clang-apply-replacements /usr/bin/clang-apply-replacements-4.0 \
--slave /usr/bin/clang-query clang-query /usr/bin/clang-query-4.0 \
--slave /usr/bin/modularize modularize /usr/bin/modularize-4.0 \
--slave /usr/bin/sancov sancov /usr/bin/sancov-4.0 \
--slave /usr/bin/c-index-test c-index-test /usr/bin/c-index-test-4.0 \
--slave /usr/bin/clang-reorder-fields clang-reorder-fields /usr/bin/clang-reorder-fields-4.0 \
--slave /usr/bin/clang-change-namespace clang-change-namespace /usr/bin/clang-change-namespace-4.0 \
--slave /usr/bin/clang-import-test clang-import-test /usr/bin/clang-import-test-4.0 \
--slave /usr/bin/scan-build scan-build /usr/bin/scan-build-4.0 \
--slave /usr/bin/scan-build-py scan-build-py /usr/bin/scan-build-py-4.0 \
--slave /usr/bin/clang-cl clang-cl /usr/bin/clang-cl-4.0 \
--slave /usr/bin/clang-rename clang-rename /usr/bin/clang-rename-4.0 \
--slave /usr/bin/find-all-symbols find-all-symbols /usr/bin/find-all-symbols-4.0 \
--slave /usr/bin/lldb lldb /usr/bin/lldb-4.0 \
--slave /usr/bin/lldb-server lldb-server /usr/bin/lldb-server-4.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment