일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- pthread
- v8 tracing
- pinpoint
- OSR
- v8 optimizing
- on-stack replacement
- 안티디버깅
- LLVM
- TLS
- uftrace
- Injection
- custom packer
- linux thread
- LLVM Obfuscator
- Linux custom packer
- apm
- tracerpid
- android inject
- Android
- LLVM 난독화
- initial-exec
- 난독화
- anti debugging
- Obfuscator
- thread local storage
- so inject
- on stack replacement
- linux debugging
- Linux packer
- tracing
- Today
- Total
Why should I know this?
LLVM Window에서 Build 및 Test 하기 본문
PR한 패치가 자꾸 윈도우에서 문제가 발생하는 이유로,
윈도우에서 한번 빌드 및 테스트를 해보기로 결정했다.
1. Visual Studio 2022 설치
https://visualstudio.microsoft.com/ko/downloads/
2. git 설치 (혹은 visual studio 2022 설치 할 때 설치됨)
https://www.git-scm.com/download/win
그러나 vs2022 다운 받는 동안 할게 없으므로 다운 및 설치
3. git clone https://github.com/llvm/llvm-project.git
반드시 git config --system core.autocrlf false 를 하자.
특정 테스트가 \r\n \n 차이를 감지해서 fail 시킴.
4. scoop 설치
5. scoop으로 sccache 설치
https://github.com/mozilla/sccache?tab=readme-ov-file
6. visual studio 를 설치
할 때 C++ 개발환경을 반드시 선택.
visual studio 설치가 제대로 되었다면 다음과 같은 cmd 실행 환경이 설치됨
7. visual studio 내의 python package 설치 numpy, pybind11, psutil
8. 준비는 모두 끝났다... CMAKE
c:\llvm-project\build2>cmake ../llvm -D LLVM_ENABLE_PROJECTS='clang;clang-tools-extra;flang;lld;llvm;mlir;polly' -G Ninja -D CMAKE_BUILD_TYPE=Release -D LLVM_ENABLE_ASSERTIONS=ON -D LLVM_BUILD_EXAMPLES=ON -D COMPILER_RT_BUILD_LIBFUZZER=OFF -DLLVM_LIT_ARGS="-v --xunit-xml-output C:\llvm-project\build2\test-results.xml --timeout=1200 --time-tests" -D COMPILER_RT_BUILD_ORC=OFF -D CMAKE_C_COMPILER_LAUNCHER=sccache -D CMAKE_CXX_COMPILER_LAUNCHER=sccache -D MLIR_ENABLE_BINDINGS_PYTHON=ON -D CMAKE_EXE_LINKER_FLAGS=/MANIFEST:NO -D CMAKE_MODULE_LINKER_FLAGS=/MANIFEST:NO -D CMAKE_SHARED_LINKER_FLAGS=/MANIFEST:NO
위 커맨드가 현지 LLVM-PROJECT에서 테스트 할 때 사용되는 옵션들이다.
-DLLVM_LIT_ARGS="-v --xunit-xml-output C:\llvm-project\build2\test-results.xml --timeout=1200 --time-tests"
위의 옵션의 경로를 변경해야 합니다.
9. 빌드! ninja
빌드가 안된다! 추가해보자.
-DLLVM_TARGETS_TO_BUILD=X86
10. 최종 성공 빌드
c:\llvm-project\build2>cmake ../llvm -D LLVM_ENABLE_PROJECTS='clang' -G Ninja -D CMAKE_BUILD_TYPE=Release -D LLVM_ENABLE_ASSERTIONS=ON -D LLVM_BUILD_EXAMPLES=ON -DLLVM_LIT_ARGS="-v --xunit-xml-output C:\llvm-project\build2\test-results.xml --timeout=1200 --time-tests"
cpc949 관련 문제가 발생한다면 참고하자!
'nope' 카테고리의 다른 글
WSL2 커널 업데이트 (0) | 2021.10.11 |
---|