Guile-3.0.9 | Lua-5.4.6 |
LLVM-17.0.6
LLVM 소개
LLVM 패키지에는 재사용 가능한 모듈식 컴파일러 및 툴체인 모음이 포함되어 있습니다. 저수준 가상 머신(LLVM: Low Level Virtual Machine) 코어 라이브러리는 최신 소스 및 대상 독립적 옵티마이저와 함께 많은 인기 CPU(일부 덜 인기 있는 CPU도 포함!)에 대한 코드 생성 지원을 제공합니다. 이러한 라이브러리는 LLVM 중간 표현(“LLVM IR”)으로 알려진 잘 지정된 코드 표현을 중심으로 구축됩니다.
Clang은 LLVM을 위한 새로운 C, C++, Objective C 및 Objective C++ 프론트엔드를 제공하며, 시스템 LLVM을 사용하여 빌드된 경우 Firefox와 같은 일부 데스크톱 패키지와 Rust에 필요합니다.
컴파일러 RT 패키지는 Clang 및 LLVM을 사용하는 개발자를 위한 런타임 Sanitizer 및 프로파일링 라이브러리를 제공합니다.
이 패키지는 LFS 12.1 플랫폼을 사용하여 빌드하고 제대로 작동하는 것으로 알려져 있습니다.
패키지 정보
- 다운로드(HTTP): Low Level Virtual Machine
- MD5 sum: fd7fc891907e14f8e0ff7e3f87cc89a4
- 다운로드 크기: 57MB
- 필요한 예상 디스크 공간: 4.2GB(964MB 설치, 테스트용 20GB 및 문서용 308MB 추가)
- 예상 빌드 시간: 13 SBU(테스트용 8 SBU 추가, 둘 다 병렬 처리=8 사용)
추가 다운로드
LLVM용 Cmake 모듈
- 다운로드: llvm-cmake-17.src.tar.xz
- MD5 sum: 2b75b6446bfd5d0dcc288cd412b6a52a
- 다운로드 크기: 12 KB
LLVM 빌드 시스템을 위한 타사 종속성
- MD5 sum: 09c9f2259766dd65b75cd728df11b395
- 다운로드 크기: 376 KB
권장 다운로드
Clang
- 다운로드: clang-17.0.6.src.tar.xz
- MD5 합계: 52ff9f49e064860445474aa21e4a7e40
- 다운로드 크기: 21 MB
- Clang에서 기본적으로 SSP를 활성화하는 패치: clang-17-enable_default_ssp-1.patch
옵션 다운로드
Compiler RT
- MD5 합계 다운로드: 85d25f04cbc4c1a20e3a1ab2a2c522cd
- 다운로드 크기: 2.4 MB
LLVM 종속성
필수
옵션
- rsync-3.2.7 테스트용
- psutil 테스트용
LLVM 설치
LLVM 빌드 시스템에는 두 개의 추가 타르볼 llvm-cmake-17.src.tar.xz
와 llvm-third-party-17.src.tar.xz
가 필요합니다. 이 두 타르볼을 llvm-17.0.6.src.tar.xz
타르볼과 동일한 디렉토리에 추출하고 디렉터리의 이름을 cmake
및 third-party
로 변경합니다. 이 디렉터리를 추출하고 빌드 시스템을 수정하여 llvm-17.0.6.src 계층 구조 외부에 모호한 이름의 디렉터리가 생성되지 않도록 합니다.
tar -xf ../llvm-cmake-17.src.tar.xz &&
tar -xf ../llvm-third-party-17.src.tar.xz &&
sed '/LLVM_COMMON_CMAKE_UTILS/s@../cmake@llvm-cmake-17.src@' \
-i CMakeLists.txt &&
sed '/LLVM_THIRD_PARTY_DIR/s@../third-party@llvm-third-party-17.src@' \
-i cmake/modules/HandleLLVMOptions.cmake
다음과 같이 clang
을 소스트리에 추가합니다.
tar -xf ../clang-17.0.6.src.tar.xz -C tools &&
mv tools/clang-17.0.6.src tools/clang
compiler-rt
를 다운로드 받았다면, 다음과 같이 소스트리에 추가하고 빌드 시스템을 수정하여 llvm-cmake-17.src
디렉토리를 적절한 위치에서 찾을 수 있도록 합니다.
tar -xf ../compiler-rt-17.0.6.src.tar.xz -C projects &&
mv projects/compiler-rt-17.0.6.src projects/compiler-rt &&
sed '/^set(LLVM_COMMON_CMAKE_UTILS/d' \
-i projects/compiler-rt/CMakeLists.txt
이 패키지에는 LFS의 시스템 파이썬인 Python-3.12.2에 액세스하기 위해 /usr/bin/env python
을 사용하는 많은 파이썬 스크립트가 있습니다. 이러한 스크립트를 다음과 수정합니다.
grep -rl '#!.*python' | xargs sed -i '1s/python$/python3/'
clang를 다운로드 받았다면 SSP1)를 기본적으로 활성화 하는 패치를 적용합니다.
patch -Np2 -d tools/clang <../clang-17-enable_default_ssp-1.patch
compiler-rt를 다운로드한 경우 clang에서 기본 SSP 활성화로 인해 영향받은 테스트를 수정하세요.
sed 's/clang_dfsan/& -fno-stack-protector/' \
-i projects/compiler-rt/test/dfsan/origin_unaligned_memtrans.c
다음과 같이 LLVM을 컴파일 합니다.
mkdir -v build &&
cd build &&
CC=gcc CXX=g++ \
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DLLVM_ENABLE_FFI=ON \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_BUILD_LLVM_DYLIB=ON \
-DLLVM_LINK_LLVM_DYLIB=ON \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_TARGETS_TO_BUILD="host;AMDGPU" \
-DLLVM_BINUTILS_INCDIR=/usr/include \
-DLLVM_INCLUDE_BENCHMARKS=OFF \
-DCLANG_DEFAULT_PIE_ON_LINUX=ON \
-Wno-dev -G Ninja .. &&
ninja
Recommonmark-0.7.1 및 해당 종속 요소를 설치한 경우 다음과 같이 HTML 문서 및 매뉴얼 페이지를 생성할 수 있습니다.
cmake -DLLVM_BUILD_DOCS=ON \
-DLLVM_ENABLE_SPHINX=ON \
-DSPHINX_WARNINGS_AS_ERRORS=OFF \
-Wno-dev -G Ninja .. &&
ninja docs-llvm-html docs-llvm-man
clang 문서도 생성합니다.
ninja docs-clang-html docs-clang-man
테스트를 수행하려면 일부 시스템에서 종료되지 않는 문제가 발생하는 테스트를 제거합니다.
rm -f ../projects/compiler-rt/test/tsan/getline_nohang.cpp
LLVM 테스트 스위트는 많은 코어 덤프 파일을 생성할 수 있습니다. 이러한 파일은 많은 양의 디스크 공간을 차지하며 코어 덤프 프로세스로 인해 테스트 속도가 상당히 느려질 수 있습니다. 코어 덤프를 비활성화한 상태에서 결과를 테스트하려면 Systemd-255 및 Shadow-4.14.5가 Linux-PAM-1.6.0를 지원하도록 다시 빌드되었는지 확인하고(SSH 또는 그래픽 세션을 통해 상호작용하는 경우 OpenSSH-9.6p1 서버 또는 데스크톱 관리자도 Linux-PAM-1.6.0을 지원하도록 으로 빌드되었는지 확인) 현재 로그인 세션이 /etc/pam.d/system-session
파일을 업데이트하여 pam_systemd.so
를 포함하도록 시작한 후 실행합니다
systemctl --user start dbus &&
systemd-run --user --pty -d -G -p LimitCORE=0 ninja check-all
ninja에 -jN(N이 숫자로 대체됨)을 전달하면 테스트는 N개의 논리 코어로 빌드되지만 사용 가능한 모든 논리 코어를 사용하여 실행됩니다. 테스트 실행을 위한 논리적 코어 수를 제한하려면 cgroup에서 테스트 명령을 실행합니다(systemd-run 명령에 -p AllowedCPUs=… 옵션을 전달하고, 자세한 내용은 "Linux 제어 그룹을 사용하여 리소스 사용량 제한하기" 섹션을 참조하세요). 커널 구성에서 CONFIG_USER_NS
가 활성화되지 않은 경우 Linux/clone_setns.cpp
라는 이름의 테스트가 실패합니다.
이제 root 사용자로
ninja install &&
cp bin/FileCheck /usr/bin
위의 명령으로 llvm 문서를 빌드했다면 이미 설치되었지만 적절한 위치로 이동해야 합니다. root 사용자로
install -v -d -m755 /usr/share/doc/llvm-17.0.6 &&
mv -v /usr/share/doc/LLVM/llvm /usr/share/doc/llvm-17.0.6 &&
rmdir -v --ignore-fail-on-non-empty /usr/share/doc/LLVM
clang 문서를 빌드했다면 설치가 완료되었지만 적절한 위치로 이동해야 합니다. 다시 root 사용자로 실행합니다.
install -v -d -m755 /usr/share/doc/llvm-17.0.6 &&
mv -v /usr/share/doc/LLVM/clang /usr/share/doc/llvm-17.0.6 &&
rmdir -v --ignore-fail-on-non-empty /usr/share/doc/LLVM
명령 설명
- -DLLVM_ENABLE_FFI=ON: LLVM이 libffi를 사용하도록 허용합니다.
- -DLLVM_BUILD_LLVM_DYLIB=ON: 라이브러리를 정적으로 빌드하고 모든 라이브러리를 고유한 공유 라이브러리로 연결합니다. 공유 라이브러리를 빌드하는 데 권장되는 방법입니다.
- -DCMAKE_BUILD_TYPE=Release: 코드의 속도를 높이고 크기를 줄이기 위해 컴파일러 최적화를 활성화합니다. 또한 프로덕션 시스템에서 필요하지 않은 일부 컴파일 검사를 비활성화합니다.
- -DLLVM_TARGETS_TO_BUILD=“host;AMDGPU”: 호스트와 동일한 타겟에 대해 빌드할 수 있으며, Mesa r600 및 라데온시 드라이버에서 사용하는 r600 AMD GPU에 대해서도 빌드할 수 있습니다. 기본값은 모든 타겟입니다. 세미콜론으로 구분된 목록을 사용할 수 있습니다. 유효한 대상은 호스트, X86, Sparc, PowerPC, ARM, AArch64, Mips, Hexagon, Xcore, M68K, MSP430, NVPTX, SystemZ, AMDGPU, BPF, CppBackend 또는 모두입니다.
- -DLLVM_LINK_LLVM_DYLIB=ON: -DLLVM_BUILD_LLVM_DYLIB=ON과 함께 이 스위치를 사용하면 정적 라이브러리 대신 공유 라이브러리에 대해 툴을 연결할 수 있습니다. 그러면 크기가 약간 줄어들고 llvm-config가 libLLVM-17.so를 올바르게 사용하도록 보장합니다.
- -DLLVM_ENABLE_RTTI=ON: 런타임 유형 정보로 LLVM을 빌드하는 데 사용됩니다. Mesa-24.0.1 빌드에 필요합니다.
- -DLLVM_BINUTILS_INCDIR=/usr/include: 이 스위치는 빌드 시스템에 LFS에 설치된 binutils 헤더의 위치를 알려주는 데 사용됩니다. 이를 통해 clang 및 링크 시간 최적화(LTO)를 사용하여 프로그램을 빌드하는 데 필요한
LLVMgold.so
를 빌드할 수 있습니다. - -DLLVM_INCLUDE_BENCHMARKS=OFF: LLVM 벤치마크에 대한 빌드 타겟 생성을 비활성화하는 데 사용됩니다. 이 옵션을 사용하려면 현재 사용할 수 없는 추가 코드가 필요합니다.
- -DCLANG_DEFAULT_PIE_ON_LINUX=ON: 프로그램을 컴파일할 때 -fpie 옵션을 기본값으로 설정합니다. 커널에서 활성화된 ASLR2) 기능과 함께 사용하면 알려진 메모리 레이아웃을 기반으로 하는 일부 공격을 무력화할 수 있습니다.
- -DBUILD_SHARED_LIBS=ON: -DLLVM_BUILD_LLVM_DYLIB=ON 및 -DLLVM_LINK_LLVM_DYLIB=ON 대신 사용하는 경우, 모든 LLVM 라이브러리(약 60개)를 정적 라이브러리가 아닌 공유 라이브러리로 빌드합니다.
- -DLLVM_ENABLE_DOXYGEN: Doxygen-1.10.0을 설치한 경우 탐색 가능한 HTML 문서를 생성할 수 있도록 합니다. 이후 make doxygen-html을 실행하고 생성된 문서를 수동으로 설치해야 합니다.
내용
- 설치한 프로그램:
amdgpu-arch, analyze-build, bugpoint, c-index-test, clang, clang++ (symlinks to clang-17), clang-17, clang-check, clang-cl, clang-cpp (last two symlinks to clang), clang-extdef-mapping, clang-format, clang-linker-wrapper, clang-offload-bundler, clang-offload-packager, clang-refactor, clang-rename, clang-repl, clang-scan-deps, diagtool, dsymutil, FileCheck, git-clang-format, hmaptool, intercept-build, llc, lli, llvm-addr2line (symlink to llvm-symbolizer), llvm-ar, llvm-as, llvm-bcanalyzer, llvm-bitcode-strip (symlink to llvm-objcopy), llvm-cat, llvm-cfi-verify, llvm-config, llvm-cov, llvm-c-test, llvm-cvtres, llvm-cxxdump, llvm-cxxfilt, llvm-cxxmap, llvm-debuginfo-analyzer, llvm-debuginfod, llvm-debuginfod-find, llvm-diff, llvm-dis, llvm-dlltool (symlink to llvm-ar), llvm-dwarfdump, llvm-dwarfutil, llvm-dwp, llvm-exegesis, llvm-extract, llvm-gsymutil, llvm-ifs, llvm-install-name-tool (symlink to llvm-objcopy), llvm-jitlink, llvm-lib (symlink to llvm-ar), 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-opt-report, llvm-otool (symlink to llv-objdump), llvm-pdbutil, llvm-profdata, llvm-profgen, llvm-ranlib (symlink to llvm-ar), llvm-rc, llvm-readelf (symlink to llvm-readobj), llvm-readobj, llvm-reduce, llvm-remark-size-diff, llvm-remarkutil, llvm-rtdyld, llvm-sim, llvm-size, llvm-split, llvm-stress, llvm-strings, llvm-strip (symlink to llvm-objcopy), llvm-symbolizer, llvm-tapi-diff, llvm-tblgen, llvm-tli-checker, llvm-undname, llvm-windres (symlink to llvm-rc), llvm-xray, nvptx-arch, opt, sancov, sanstats, scan-build, scan-build-py, scan-view, split-file, 및 verify-uselistorder - 설치한 라이브러리:
libLLVM.so, libLLVM*.a (라이브러리 100개), libLTO.so, libRemarks.so, libclang.so, libclang-cpp.so, libclang*.a (라이브러리 42개), 및 LLVMgold.so - 설치한 디렉토리:
/usr/include/{clang,clang-c,llvm,llvm-c}, /usr/lib/{clang,cmake/{clang,llvm},libear,libscanbuild}, /usr/share/{clang,opt-viewer,scan-build,scan-view}, 및 /usr/share/doc/llvm-17.0.6
간략한 설명
- amdgpu-arch
설치된 AMD GPU를 나열하며, 런타임에는 BLFS의 일부가 아닌libhsa-runtime64.so
가 필요합니다. - analyze-build
정적 분석 도구 - bugpoint
자동 테스트 케이스 감소 도구 - c-index-test
libclang API를 테스트하고 그 사용법을 보여주는 데 사용됩니다. - clang
Clang C, C++ 및 Objective-C 컴파일러입니다. - clang-check
정적 코드 분석을 수행하고 추상 구문 트리(AST: Abstract Syntax Trees)를 표시하는 도구입니다. - clang-extdef-mapping
소스 파일에서 외부 정의의 USR3) 이름과 위치를 수집하는 도구입니다. - clang-format
C/C++/자바/자바스크립트/오브젝티브-C/프로토부프 코드의 형식을 지정하는 도구입니다. - clang-linker-wrapper
호스트 링커에 대한 래퍼 유틸리티입니다. - clang-offload-bundler
공통 소스 파일과 관련된 OpenMP 오프로드 파일을 번들링/언번들링하는 도구입니다. - clang-offload-packager
여러 객체 파일을 단일 바이너리로 번들링하는 도구로, 오프로드 코드를 포함하는 팻 바이너리를 만드는 데 사용할 수 있습니다. - clang-refactor
C, C++ 및 Objective-C를 위한 Clang 기반 리팩터링 도구입니다. - clang-rename
C/C++ 프로그램에서 심볼 이름을 바꾸는 도구입니다. - clang-scan-deps
소스 파일에서 종속성을 검사하는 도구입니다. - diagtool
clang에서 진단을 처리하는 도구의 조합입니다. - FileCheck
두 개의 파일(하나는 표준 입력에서, 다른 하나는 명령줄에 지정된 파일)을 읽고 하나를 사용하여 다른 파일을 확인하는 도구입니다. - dsymutil
보관된 DWARF 디버그 심볼 파일을 조작하는 데 사용되는 도구로, Darwin 명령인dsymutil
과 호환됩니다. - git-clang-format
git으로 생성된 패치에 대해 clang-format을 실행합니다(git-2.44.0 필요). - hmaptool
헤더 맵을 덤프하고 구성하는 파이썬 도구이다. - intercept-build
프로젝트의 빌드 명령어 데이터베이스를 생성한다. - llc
LLVM 정적 컴파일러 - lli
LLVM 비트코드에서 프로그램을 직접 실행하는 데 사용됩니다. - llvm-addr2line
주소를 파일 이름과 줄 번호로 변환하는 데 사용되는 도구입니다. - llvm-ar
LLVM 아카이버 - llvm-as
LLVM 어셈블러 - llvm-bcanalyzer
LLVM 비트코드 분석기 - llvm-bitcode-strip
객체에서 LLVM 비트코드를 스트립합니다. - llvm-cat
LLVM 모듈을 연결하는 도구입니다. - llvm-cfi-verify
제어 흐름 무결성이 제공된 오브젝트 파일, DSO 또는 바이너리에서 모든 간접 제어 흐름 명령어를 보호하는지 확인합니다. - llvm-config
LLVM 컴파일 옵션을 출력합니다 - llvm-cov
커버리지 정보를 출력하는 데 사용됩니다. - llvm-c-test
바이트코드 디스어셈블러입니다. - llvm-cvtres
Microsoft 리소스 파일을 COFF로 변환하는 도구입니다. - llvm-cxxdump
C++ ABI 데이터 덤퍼로 사용됩니다. - llvm-cxxfilt
llvm 코드에서 C++ 심볼을 분리하는 데 사용됩니다. - llvm-cxxmap
C++ 엉클어진 심볼을 다시 매핑하는 데 사용됩니다. - llvm-debuginfo-analyzer
저수준 디버그 정보의 논리적 표현을 출력합니다. - llvm-debuginfod
제거된 바이너리를 분석하기 위해 HTTP API를 통해 디버그 정보를 제공하는 서비스입니다. - llvm-debuginfod-find
디버그인포드 아티팩트를 찾기 위한 llvm-debuginfod 데몬에 대한 인터페이스입니다. - llvm-diff
LLVM 구조적 'diff'입니다. - llvm-dis
LLVM 디스어셈블러 - llvm-dwarfdump
오브젝트 파일에 있는 DWARF 섹션의 내용을 출력합니다. - llvm-dwarfutil
디버그 정보를 복사하고 조작하는 도구입니다. - llvm-dwp
분할된 DWARF 파일을 병합합니다 - llvm-elfabi
ELF 바이너리의 ABI에 대한 정보를 읽는 데 사용됩니다. - llvm-exegesis
LLVM에서 사용 가능한 정보를 사용하여 지연 시간이나 포트 분해와 같은 호스트 머신 명령어 특성을 측정하는 벤치마킹 툴입니다. - llvm-extract
LLVM 모듈에서 함수를 추출하는 데 사용됩니다. - llvm-gsymutil
메모리 주소를 함수 이름과 소스 파일 줄로 변환하는 GSYM 심볼리케이션 포맷 파일을 처리하는 데 사용됩니다. 이 파일은 DWARF 또는 브레이크패드 파일보다 작습니다. - llvm-ifs
인터페이스 스텁을 오브젝트 파일과 병합하는 데 사용됩니다. - llvm-install-name-tool
로드 명령을 MachO 바이너리 형식으로 다시 작성하는 데 사용됩니다. - llvm-jitlink
재배치 가능한 객체 파일을 구문 분석하여 대상 프로세스에서 해당 내용을 실행 가능하게 만드는 데 사용됩니다. - llvm-libtool-darwin
Darwin 기반 시스템에서 기본적인 libtool 기능을 제공합니다. 주로 macOS 시스템용 바이너리를 생성하는 경우에 유용합니다. - llvm-link
LLVM 링커 - llvm-lipo
MachO 파일에서 범용 바이너리를 생성하는 데 사용됩니다. - llvm-lto
LLVM LTO(링크 시간 최적화) 링커입니다. - llvm-lto2
Resolution 기반 LTO 인터페이스를 위한 테스트 하네스입니다. - llvm-mc
독립형 머신 코드 어셈블러/디스어셈블러입니다. - llvm-mca
머신 코드의 성능을 정적으로 측정하는 성능 분석 툴입니다. - llvm-ml
LLVM에서 제공하는 머신 코드를 위한 playground 입니다. - llvm-modextract
멀티모듈 비트코드 파일에서 하나의 모듈을 추출하는 도구입니다. - llvm-mt
나란히 배치된 어셈블리 매니페스트에서 서명된 파일과 카탈로그를 생성하는 도구입니다(Microsoft SDK에 사용됨). - llvm-nm
LLVM 비트코드 및 오브젝트 파일의 심볼 테이블을 나열하는 데 사용됩니다. - llvm-objcopy
LLVM의 객체 복사 도구 버전입니다. - llvm-objdump
LLVM 객체 파일 덤퍼입니다. - llvm-opt-report
YAML 최적화 레코드 파일에서 최적화 보고서를 생성하는 도구입니다. - llvm-pdbutil
PDB(프로그램 데이터베이스) 덤퍼입니다. PDB는 Microsoft 형식입니다. - llvm-profdata
프로파일 데이터 파일을 조작하고 인쇄하는 작은 도구입니다. - llvm-profgen
LLVM SPGO 프로파일링 정보를 생성합니다. - llvm-ranlib
LLVM 아카이브의 인덱스를 생성하는 데 사용됩니다. - llvm-rc
리소스 스크립트를 바이너리 리소스 파일로 컴파일하는 플랫폼 독립적인 도구입니다. - llvm-readobj
오브젝트 파일에 대한 저수준 형식별 정보를 표시합니다. - llvm-reduce
테스트 스위트를 실행할 때 테스트 케이스를 자동으로 줄이는 데 사용됩니다. - llvm-remark-size-diff
두 주석 파일 간의 명령어 수와 스택 크기 주석의 차이를 보고합니다. - llvm-remarkutil
주석 파일을 비트스트림과 YAML 간에 변환하거나 주석 파일에 함수 명령어 수 정보를 인쇄합니다. - llvm-rtdyld
LLVM MC-JIT 도구 - llvm-size
LLVM 객체 크기 덤퍼 - llvm-split
LLVM 모듈 스플리터 - llvm-stress
임의의 .ll 파일을 생성하는 데 사용됩니다. - llvm-strings
바이너리(객체 파일, 실행 파일 또는 아카이브 라이브러리)에서 찾은 문자열을 인쇄합니다. - llvm-symbolizer
주소를 소스 코드 위치로 변환합니다. - llvm-tblgen
LLVM 대상 설명을 C++ 코드 생성기로 변환합니다. - llvm-tli-checker
LLVM 타깃 라이브러리 정보 대 SDK 검사기입니다. - llvm-undname
이름 풀기 도구 - llvm-xray
Google의 XRay 함수 호출 추적 시스템 구현입니다. - nvptx-arch
설치된 NVIDIA GPU를 나열하며, 런타임에 BLFS의 일부가 아닌 libcuda.so가 필요합니다. - opt
LLVM 옵티마이저 - sancov
세니타이져 커버리지 처리 도구 - sanstats
세니타이져 통계 처리 도구 - scan-build
Clang 정적 분석기를 호출하는 Perl 스크립트입니다. - scan-build-py
Clang 정적 분석기를 호출하는 Python 스크립트입니다. - scan-view
Clang 정적 분석기 결과 뷰어입니다. - split-file
입력 파일을 정규식으로 구분된 여러 부분으로 분할합니다. - verify-uselistorder
사용 목록 순서를 확인하는 LLVM 도구입니다.