| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| prog:clang [2023/05/11 12:31] – [Erreurs] : ajout des sources root | prog:clang [2025/11/07 15:30] (Version actuelle) – [Ubuntu] : ajout de nouveaux binaires dans llvm/clang root |
|---|
| =====Installation===== | =====Installation===== |
| |
| | ====Compilation==== |
| | |
| | Pour faire une compilation plus rapide, ajouter : |
| | |
| | Dossier source : ''llvm-project\llvm''. |
| | |
| | ''-DLLVM_TARGETS_TO_BUILD=X86'' pour compiler pour x86 et x64. |
| | |
| | ''-DCMAKE_INSTALL_PREFIX=install'' car ce dossier a besoin d'être accessible en écriture pendant la compilation. |
| | |
| | ''%%-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra"%%''. ''clang-tools-extra'' est nécessaire pour ''ClangAST''. |
| | |
| | ''%%-DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi"%%'' |
| | |
| | ''-DLLVM_PARALLEL_LINK_JOBS=2'' pour éviter que le link plante. |
| | |
| | ''-DLLVM_INCLUDE_TESTS:BOOL=OFF -DCLANG_INCLUDE_TESTS:BOOL=OFF -DLLVM_INCLUDE_BENCHMARKS:BOOL=OFF -DLLVM_INCLUDE_EXAMPLES:BOOL=OFF -DLLVM_INCLUDE_UTILS:BOOL=OFF -DLLVM_INCLUDE_DOCS:BOOL=OFF -DLLVM_BUILD_UTILS:BOOL=OFF'' |
| ====Ubuntu==== | ====Ubuntu==== |
| |
| |
| <code bash> | <code bash> |
| cd /usr/share/keyrings | wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc |
| sudo wget https://apt.llvm.org/llvm-snapshot.gpg.key | |
| </code> | </code> |
| |
| [[https://askubuntu.com/questions/1403556/key-is-stored-in-legacy-trusted-gpg-keyring-after-ubuntu-22-04-update|Key is stored in legacy trusted.gpg keyring after Ubuntu 22.04 update]] {{ :prog:clang:apt_-_key_is_stored_in_legacy_trusted.gpg_keyring_after_ubuntu_22.04_update_-_ask_ubuntu_18_10_2022_15_03_19_.html |Archive du 21/04/2022 le 18/10/2022}} | [[https://askubuntu.com/questions/1403556/key-is-stored-in-legacy-trusted-gpg-keyring-after-ubuntu-22-04-update|Key is stored in legacy trusted.gpg keyring after Ubuntu 22.04 update]] {{ :prog:clang:apt_-_key_is_stored_in_legacy_trusted.gpg_keyring_after_ubuntu_22.04_update_-_ask_ubuntu_18_10_2022_15_03_19_.html |Archive du 21/04/2022 le 18/10/2022}} |
| |
| Ajouter à ''/etc/apt/sources.list'' : | Créer un fichier ''/etc/apt/sources.list.d/llvm.sources'' : |
| |
| <code> | <code> |
| deb [signed-by=/usr/share/keyrings/llvm-snapshot.gpg.key] http://apt.llvm.org/unstable/ llvm-toolchain main | Enabled: yes |
| deb-src [signed-by=/usr/share/keyrings/llvm-snapshot.gpg.key] http://apt.llvm.org/unstable/ llvm-toolchain main | Types: deb deb-src |
| # 15 | URIs: http://apt.llvm.org/noble/ |
| deb [signed-by=/usr/share/keyrings/llvm-snapshot.gpg.key] http://apt.llvm.org/unstable/ llvm-toolchain-15 main | Suites: llvm-toolchain-noble-21 |
| deb-src [signed-by=/usr/share/keyrings/llvm-snapshot.gpg.key] http://apt.llvm.org/unstable/ llvm-toolchain-15 main | Components: main |
| | Signed-By: /etc/apt/trusted.gpg.d/apt.llvm.org.asc |
| </code> | </code> |
| |
| La première paire de lignes est globale et doit toujours être ajoutée. | |
| |
| La seconde paire est pour ajouter la version précise. | |
| |
| Puis faire un ''apt update'' / ''apt upgrade''. | Puis faire un ''apt update'' / ''apt upgrade''. |
| local slaves=${4} | local slaves=${4} |
| local path=${5} | local path=${5} |
| local cmdln | local cmdln slave_tgt |
| |
| cmdln="--verbose --install ${path}${master} ${master} ${path}${master}-${version} ${priority}" | cmdln="--verbose --install ${path}${master} ${master} ${path}${master}-${version} ${priority}" |
| for slave in ${slaves}; do | for slave in ${slaves}; do |
| cmdln="${cmdln} --slave ${path}${slave} ${slave} ${path}${slave}-${version}" | if [[ "$slave" = *.py ]]; then |
| | slave_tgt="${slave%.py}-${version}.py" |
| | else |
| | slave_tgt="${slave}-${version}" |
| | fi |
| | cmdln="${cmdln} --slave ${path}${slave} ${slave} ${path}${slave_tgt}" |
| done | done |
| sudo update-alternatives ${cmdln} | sudo update-alternatives ${cmdln} |
| |
| master="llvm-config" | master="llvm-config" |
| slaves="llvm-addr2line llvm-ar llvm-as llvm-bcanalyzer llvm-bitcode-strip llvm-cat llvm-cfi-verify llvm-cov llvm-c-test llvm-cvtres llvm-cxxdump llvm-cxxfilt llvm-cxxmap llvm-debuginfod llvm-debuginfod-find llvm-diff llvm-dis llvm-dlltool llvm-dwarfdump llvm-dwarfutil llvm-dwp llvm-exegesis llvm-extract llvm-gsymutil llvm-ifs llvm-install-name-tool llvm-jitlink llvm-jitlink-executor llvm-lib llvm-libtool-darwin llvm-link llvm-lipo llvm-lto llvm-lto2 llvm-mc llvm-mca llvm-ml llvm-modextract llvm-mt llvm-nm llvm-objcopy llvm-objdump llvm-omp-device-info llvm-opt-report llvm-otool llvm-pdbutil llvm-PerfectShuffle llvm-profdata llvm-profgen llvm-ranlib llvm-rc llvm-readelf llvm-readobj llvm-reduce llvm-remark-size-diff llvm-rtdyld llvm-sim llvm-size llvm-split llvm-stress llvm-strings llvm-strip llvm-symbolizer llvm-tapi-diff llvm-tblgen llvm-tli-checker llvm-undname llvm-windres llvm-xray" | slaves="ld.lld ld64.lld llc lld lld-link lldb lldb-argdumper lldb-dap lldb-instr lldb-server lldb-vscode lli lli-child-target llvm-addr2line llvm-ar llvm-as llvm-bcanalyzer llvm-bitcode-strip llvm-boltdiff llvm-c-test llvm-cat llvm-cfi-verify llvm-cov llvm-cvtres llvm-cxxdump llvm-cxxfilt llvm-cxxmap llvm-debuginfo-analyzer llvm-debuginfod llvm-debuginfod-find llvm-diff llvm-dis llvm-dlltool llvm-dwarfdump llvm-dwarfutil llvm-dwp llvm-exegesis llvm-extract llvm-gsymutil llvm-ifs llvm-install-name-tool llvm-jitlink llvm-jitlink-executor llvm-lib llvm-libtool-darwin llvm-link llvm-lipo llvm-lto llvm-lto2 llvm-mc llvm-mca llvm-ml llvm-modextract llvm-mt llvm-nm llvm-objcopy llvm-objdump llvm-omp-device-info llvm-omp-kernel-replay llvm-opt-report llvm-otool llvm-pdbutil llvm-PerfectShuffle llvm-profdata llvm-profgen llvm-ranlib llvm-rc llvm-readelf llvm-readobj llvm-readtapi llvm-reduce llvm-remark-size-diff llvm-remarkutil llvm-rtdyld llvm-sim llvm-size llvm-split llvm-stress llvm-strings llvm-strip llvm-symbolizer llvm-tapi-diff llvm-tblgen llvm-tli-checker llvm-undname llvm-windres llvm-xray" |
| |
| update_alternatives "${version}" "${priority}" "${master}" "${slaves}" "${path}" | update_alternatives "${version}" "${priority}" "${master}" "${slaves}" "${path}" |
| |
| master="clang" | master="clang" |
| slaves="analyze-build asan_symbolize bugpoint c-index-test clang++ clang-apply-replacements clang-change-namespace clang-check clang-cl clang-cpp clangd clang-doc clang-extdef-mapping clang-format clang-format-diff clang-include-fixer clang-linker-wrapper clang-move clang-nvlink-wrapper clang-offload-bundler clang-offload-packager clang-offload-wrapper clang-pseudo clang-query clang-refactor clang-rename clang-reorder-fields clang-repl clang-scan-deps clang-tidy count diagtool dsymutil FileCheck find-all-symbols git-clang-format hmaptool hwasan_symbolize intercept-build ld64.lld ld.lld llc lld lldb lldb-argdumper lldb-instr lldb-server lldb-vscode lld-link lli lli-child-target modularize not obj2yaml opt pp-trace run-clang-tidy sancov sanstats scan-build scan-build-py scan-view split-file UnicodeNameMappingGenerator verify-uselistorder wasm-ld yaml2obj yaml-bench" | slaves="amdgpu-arch analyze-build asan_symbolize bbc bugpoint c-index-test clang-apply-replacements clang-change-namespace clang-check clang-cl clang-cpp clang-doc clang-extdef-mapping clang-format clang-format-diff clang-include-cleaner clang-include-fixer clang-installapi clang-linker-wrapper clang-move clang-nvlink-wrapper clang-offload-bundler clang-offload-packager clang-offload-wrapper clang-pseudo clang-query clang-refactor clang-rename clang-reorder-fields clang-repl clang-scan-deps clang-tblgen clang-tidy clang-tidy-diff.py clang++ clangd count diagtool dsymutil f18-parse-demo FileCheck find-all-symbols fir-opt git-clang-format hmaptool hwasan_symbolize intercept-build merge-fdata mlir-cat mlir-cpu-runner mlir-linalg-ods-yaml-gen mlir-lsp-server mlir-minimal-opt mlir-minimal-opt-canonicalize mlir-opt mlir-pdll mlir-pdll-lsp-server mlir-query mlir-reduce mlir-transform-opt mlir-translate modularize not nvptx-arch obj2yaml opt perf2bolt pp-trace reduce-chunk-list run-clang-tidy run-clang-tidy.py sancov sanstats scan-build scan-build-py scan-view split-file tblgen-lsp-server tblgen-to-irdl tco UnicodeNameMappingGenerator verify-uselistorder wasm-ld yaml-bench yaml2obj" |
| |
| update_alternatives "${version}" "${priority}" "${master}" "${slaves}" "${path}" | update_alternatives "${version}" "${priority}" "${master}" "${slaves}" "${path}" |