beyondlinuxfromscratch:installedpackages:llvm-17.0.6

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

beyondlinuxfromscratch:installedpackages:llvm-17.0.6 [2024/05/29 21:30] – 만듦 baecybeyondlinuxfromscratch:installedpackages:llvm-17.0.6 [2024/05/29 23:10] (현재) baecy
줄 21: 줄 21:
 === 패키지 정보 === === 패키지 정보 ===
  
-다운로드(HTTP): [[https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/Low Level Virtual Machine|Low Level Virtual Machine]] \\  +  * 다운로드(HTTP): [[https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/Low Level Virtual Machine|Low Level Virtual Machine]] 
-MD5 sum: <clipb f=c>fd7fc891907e14f8e0ff7e3f87cc89a4</clipb> \\ +  MD5 sum: <clipb f=c>fd7fc891907e14f8e0ff7e3f87cc89a4</clipb> 
-다운로드 크기: 57MB+  다운로드 크기: 57MB 
 +  * 필요한 예상 디스크 공간: 4.2GB(964MB 설치, 테스트용 20GB 및 문서용 308MB 추가) 
 +  * 예상 빌드 시간: 13 SBU(테스트용 8 SBU 추가, 둘 다 병렬 처리=8 사용)
  
-필요한 예상 디스크 공간: 4.2GB(964MB 설치, 테스트용 20GB 및 문서용 308MB 추가)+=== 추가 다운로드 ===
  
-예상 빌드 시간: 13 SBU(테스트용 8 SBU 추가, 둘 다 병렬 처리=8 사)+== LLVM용 Cmake 모듈 ==
  
-추가 다운로드 +  * 다운로드: [[https://anduin.linuxfromscratch.org/BLFS/llvm/llvm-cmake-17.src.tar.xz|llvm-cmake-17.src.tar.xz]] 
-LLVM용 Cmake 모듈+  * MD5 sum: 2b75b6446bfd5d0dcc288cd412b6a52a 
 +  * 다운로드 크기: 12 KB
  
-다운로: https://anduin.linuxfromscratch.org/BLFS/llvm/llvm-cmake-17.src.tar.xz+== LLVM 빌드 시스템을 위한 타사 종속성 ==
  
-MD5 합계 다운로드: 2b75b6446bfd5d0dcc288cd412b6a52a+  * 다운로드: [[https://anduin.linuxfromscratch.org/BLFS/llvm/llvm-third-party-17.src.tar.xz|llvm-third-party-17.src.tar.xz]] 
 +  * MD5 sum: 09c9f2259766dd65b75cd728df11b395 
 +  * 다운로드 크기376 KB
  
-다운로드 크기: 12 KB+=== 권장 다운로드 ===
  
-LLVM 빌드 시스템을 위한 타사 종속성+== Clang ==
  
-다운로드: https://anduin.linuxfromscratch.org/BLFS/llvm/llvm-third-party-17.src.tar.xz+  * 다운로드: [[https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/clang-17.0.6.src.tar.xz|clang-17.0.6.src.tar.xz]] 
 +  * MD5 합계: 52ff9f49e064860445474aa21e4a7e40 
 +  * 다운로드 크기: 21 MB 
 +  * Clang에서 기본적으로 SSP를 활성화하는 패치: [[https://www.linuxfromscratch.org/patches/blfs/12.1/clang-17-enable_default_ssp-1.patch|clang-17-enable_default_ssp-1.patch]]
  
-MD5 총 다운로드: 09c9f2259766dd65b75cd728df11b395+=== 옵션 다운로드 ===
  
-다운로드 크기: 376 KB+== Compiler RT ==
  
-권장 다운로드 +  *다운로드: [[https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/compiler-rt-17.0.6.src.tar.xz|compiler-rt-17.0.6.src.tar.xz]] 
-Clang+  *MD5 합계 다운로드: 85d25f04cbc4c1a20e3a1ab2a2c522cd 
 +  *다운로드 크기: 2.4 MB
  
-다운로드: https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/clang-17.0.6.src.tar.xz+=== LLVM 종속성 ===
  
-MD5 합계: 52ff9f49e064860445474aa21e4a7e40+== 필수 ==
  
-다운로드 크기21 MB+  * [[.:CMake-3.28.3]]
  
-Clang에서 기본적으로 SSP를 활성화하는 패치: https://www.linuxfromscratch.org/patches/blfs/12.1/clang-17-enable_default_ssp-1.patch+== 옵션 ==
  
-옵션 다운로드 +  * [[.:Doxygen-1.10.0]] 
-컴파일러 RT+  * [[.:git-2.44.0]] 
 +  * [[.:Graphviz-10.0.1]] 
 +  * [[.:libxml2-2.12.5]] 
 +  * [[.:Pygments-2.17.2]] 
 +  * [[.:rsync-3.2.7]] 테스트용 
 +  * [[.:recommonmark-0.7.1]] 문서용 
 +  * [[.:texlive-20230313]] 또는 [[.:install-tl-unx]] 
 +  * [[.:Valgrind-3.22.0]] 
 +  * [[.:PyYAML-6.0.1]] 
 +  * [[.:Zip-3.0]] 
 +  * [[https://ocaml.org/|OCaml]] 
 +  * [[https://pypi.org/project/psutil/|psutil]] 테스트용 
 +  * [[https://github.com/Z3Prover/z3|Z3]]
  
-다운로드: https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/compiler-rt-17.0.6.src.tar.xz+==== LLVM 설치 ====
  
-MD5 계 로드: 85d25f04cbc4c1a20e3a1ab2a2c522cd+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 계층 구조 외부에 모호한 이름의 디렉터리가 생성되지 않도록 합니다.
  
-다운로드 크기: 2.4 MB+<code bash> 
 +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 
 +</code>
  
-LLVM 종속성 +다음과 같이 ''clang''을 소스트리에 추가합니다.
-필수 +
-CMake-3.28.3+
  
-옵션 +<code bash> 
-Doxygen-1.10.0, git-2.44.0, Graphviz-10.0.1, libxml2-2.12.5, Pygments-2.17.2, rsync-3.2.7(테스트용), recommonmark-0.7.1(구축 문서용), texlive-20230313(또는 install-tl-unx), Valgrind-3.22.0, PyYAML-6.0.1, Zip-3.0, OCaml, psutil(테스트용) 및 Z3.+tar -xf ../clang-17.0.6.src.tar.xz -C tools && 
 +mv tools/clang-17.0.6.src tools/clang 
 +</code>
  
-LLVM 설치 +''compiler-rt''를 다운로드 받았다면, 다음과 같이 소스트리에 추가하고 빌드 시스템을 수정하여 ''llvm-cmake-17.src'' 디렉토리를 적절한 위치에서 찾을 수 있도록 합니다. 
-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 계층 구조 외부에 모호한 이의 디렉터리가 생성되지 않록 : + 
-*** Translated with www.DeepL.com/Translator (free version) ***+<code bash> 
 +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 
 +</code> 
 + 
 +이 패키지에는 LFS의 시스템 파이썬인 [[.:Python-3.12.2]]에 액세스하기 위해 ''/usr/bin/env python''을 사용하는 많은 파이썬 스크립트가 있습니다. 이러한 스크립트를 다음과 수정합니다. 
 + 
 +<code bash> 
 +grep -rl '#!.*python' | xargs sed -i '1s/python$/python3/' 
 +</code> 
 + 
 +clang를 다운로드 받았다면 SSP((Stack Smash Protection))를 기본적으로 활성화 하는 패치를 적용합니다. 
 + 
 +<code bash> 
 +patch -Np2 -d tools/clang <../clang-17-enable_default_ssp-1.patch 
 +</code> 
 + 
 +compiler-rt를 다운로드한 경우 clang에서 기본 SSP 활성화로 인해 영향받은 테스트를 수정하세요. 
 + 
 +<code bash> 
 +sed 's/clang_dfsan/& -fno-stack-protector/'
 +    -i projects/compiler-rt/test/dfsan/origin_unaligned_memtrans.c 
 +</code> 
 + 
 +다음과 같이 LLVM을 컴파일 합니다. 
 + 
 +<code bash> 
 +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 
 +</code> 
 + 
 +[[.:Recommonmark-0.7.1]] 및 해당 종속 요소를 설치한 경우 다음과 같이 HTML 문서 및 매뉴얼 페이지를 생성할 수 있습니다. 
 + 
 +<code bash> 
 +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 
 +</code> 
 + 
 +clang 문서도 생성합니다. 
 + 
 +<code bash> 
 +ninja docs-clang-html docs-clang-man 
 +</code> 
 + 
 +테스트를 수행하려면 일부 시스템에서 종료되지 않는 문제가 발생하는 테스트를 제거합니다. 
 + 
 +<code bash> 
 +rm -f ../projects/compiler-rt/test/tsan/getline_nohang.cpp 
 +</code> 
 + 
 +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''를 포함하도록 시작한 후 실행합니다 
 + 
 +<code bash> 
 +systemctl --user start dbus && 
 +systemd-run --user --pty -d -G -p LimitCORE=0 ninja check-all 
 +</code> 
 + 
 +ninja에 -jN(N이 숫자로 대체됨)을 전달하면 테스트는 N개의 논리 코어로 빌드되지만 사용 능한 모든 논리 코어를 사용하여 실행됩니다. 테스트 실행을 위한 논리적 코어 수를 제한하려면 cgroup에서 테스트 명령을 실행합니다(systemd-run 명령에 -p AllowedCPUs=... 옵션을 전달하고, 자세한 내용은 [[.:"Linux 제어 그룹을 사용하여 리소스 사용량 제한하기" 섹션]]을 참조하세요). 커널 구성에서 ''CONFIG_USER_NS''가 활성화되지 않은 경우 ''Linux/clone_setns.cpp''라는 이름의 테스트가 실패합니다. 
 + 
 +이제 //root// 사용자로 
 + 
 +<code bash> 
 +ninja install && 
 +cp bin/FileCheck /usr/bin 
 +</code> 
 + 
 +위의 명령으로 llvm 문서를 빌드했다면 이미 설치되었지만 적절한 위치로 이동해야 합니다. //root// 사용자로 
 + 
 +<code bash> 
 +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 
 +</code> 
 + 
 +clang 문서를 빌드했다면 설치가 완료되었지만 적절한 위치로 이동해야 합니다. 다시 //root// 사용자로 실행합니다. 
 + 
 +<code bash> 
 +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 
 +</code> 
 + 
 +==== 명령 설명 ==== 
 + 
 +  * //-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 옵션을 기본값으로 설정합니다. 커널에서 활성화된 ASLR((Address Space Layout Randomization)) 기능과 함께 사용하면 알려진 메모리 레이아웃을 기반으로 하는 일부 공격을 무력화할 수 있습니다. 
 +  * //-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** \\ 소스 파일에서 외부 정의의 USR((Unified Symbol Resolution)) 이름과 위치를 수집하는 도구입니다. 
 +  * **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 도구입니다.
  
  
  • beyondlinuxfromscratch/installedpackages/llvm-17.0.6.1717018249.txt.gz
  • 마지막으로 수정됨: 2024/05/29 21:30
  • 저자 baecy