Why should I know this?

LLVM debug 빌드시 주의점 본문

카테고리 없음

LLVM debug 빌드시 주의점

die4taoam 2024. 8. 26. 15:00

 

LLVM 을 debug 로 빌드하면 링킹 때 위처럼 1core 만 돌렸을 때 최대 15기가 까지 메모리를 잡아먹음.

-j 을 지정할 때 주의해야 함.

 

 

혹자는 swap을 늘리면 되는게 아니냐고 물을텐데, 링킹 과정에서 트리서치 과정이 굉장히 빈번하고 많이 일어남. 즉, swap하면서 코어수를 늘리느니 swap없이 코어를 줄이는게 현명.

 

-- Performing Test HAVE_POSIX_REGEX
-- Performing Test HAVE_POSIX_REGEX -- success
-- Performing Test HAVE_STEADY_CLOCK
-- Performing Test HAVE_STEADY_CLOCK
-- Performing Test HAVE_STEADY_CLOCK -- success
-- Configuring done (93.7s)
-- Generating done (8.6s)
-- Build files have been written to: /data/data/com.termux/files/home/scratch_dir/llvm_build0
[1720/5090] Building AMDGPUGenMCCodeEmitter.inc...Connection to 192.168.25.3 closed by remote host.

 

termux 에서는 debug 빌드는 시도하지 않는게 좋음.

컴파일 타임에 계속 종료되는걸 보면 빌드 시간이 길어지면서 생기는 모종의 이유로 강종이 됨.

 

 

다음과 같은 명령으로 compile과 linking job 을 변경하여 조절할 수 있다.

cmake
'-DCMAKE_JOB_POOLS:STRING=compile=5;link=2'
-DCMAKE_JOB_POOL_COMPILE:STRING=compile
-DCMAKE_JOB_POOL_LINK:STRING=link
~/src/MyProject

 

 

docker를 사용한다면 다음과 같이 cpu를 제한할 수 있다

docker update --memory "1g" --cpuset-cpus "1" <RunningContainerNameOrID>

 

 

예제 스크립트

BUILD_SYSTEM=Ninja
BUILD_TAG=$1
LLVM_HOME=$2

cmake -H$2 \
	-G$BUILD_SYSTEM -B ${BUILD_TAG}_build \
	-DCMAKE_BUILD_TYPE=Debug \
	-DLLVM_TARGETS_TO_BUILD='host' \
	-DLLVM_ENABLE_PROJECTS='clang;' \
	-DCMAKE_JOB_POOL_COMPILE:STRING=compile -DCMAKE_JOB_POOL_LINK:STRING=link \
	'-DCMAKE_JOB_POOLS:STRING=compile=20;link=2'
Comments