beyondlinuxfromscratch:installedpackages:llvm-17.0.6

Beyond Linux® From Scratch (systemd Edition) - Version 12.1
Chapter 13. Programming
이전 위로 / 처음으로 다음
Guile-3.0.9 Lua-5.4.6

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 빌드 시스템을 위한 타사 종속성

권장 다운로드

Clang

옵션 다운로드

Compiler RT

LLVM 종속성

필수
옵션

LLVM 빌드 시스템에는 두 개의 추가 타르볼 llvm-cmake-17.src.tar.xzllvm-third-party-17.src.tar.xz가 필요합니다. 이 두 타르볼을 llvm-17.0.6.src.tar.xz 타르볼과 동일한 디렉토리에 추출하고 디렉터리의 이름을 cmakethird-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-255Shadow-4.14.5Linux-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 도구입니다.

1)
Stack Smash Protection
2)
Address Space Layout Randomization
3)
Unified Symbol Resolution
  • beyondlinuxfromscratch/installedpackages/llvm-17.0.6.txt
  • 마지막으로 수정됨: 2024/05/29 23:10
  • 저자 baecy