LLVM Stable Build with Docker

LLVM을 미리 빌드해놓은 공식 도커 이미지를 찾지 못했다. 직접 빌드 하려고 찾아보니, LLVM 홈페이지에 보면 도커를 이용해 Stable 버전을 빌드 할 수 있는 다음 코드를 발견할 수 있었다.

실제로 실행해보면 공식 문서와는 --d 라는 파라미터가 없다고 불평하니 -d 로 바꿔주자. (위 스크립트에는 이미 반영됨) 사족으로 staging tag도 stable build에는 어울리지 않으니 이 부분도 변경했다.

또한, 빌드 중간에 branches/google/stable 라는 SVN URL이 없다고 하는데, 한 10번쯤 재시도 해보면 정상적으로 다운로드 받을 수 있다. 아마, 서버의 Max Connection 설정이 타이트하게 잡혀있는게 아닐까 추측.  URL을 브라우저에 직접 치면 잘 들어가지거든 (…)

컴파일은 i5-7600 32GB Sierra, Docker cpu 4 cores, mem 8GB, swap 1GB 기준으로 42분정도 소요된다.

Screen Shot 2018-11-27 at 10.42.36 AM.png

컴파일이 완료됐다는 것은 우리의 도커 이미지가 성공적으로 만들어졌다는 뜻 이므로, 이 이미지로 새로운 도커 컨테이너를 실행하면 된다. 도커 이미지가 생성된 뒤에 용량이 약 3GB정도 증가한 것을 확인했다. 혹시 용량이 부족한 상황이라면 미리 4GB 이상의 여유공간을 만들고 실행할 것.

이후, clang -v 를 사용하여 빌드가 제대로 됐는지 확인할 수 있다.

Docker Build의 단점도 있다. 빌드 설정값을 변경하면서 여러 번 빌드하는 경우, 빌드할 때 마다 새로운 이미지 안에서 새로 빌드하기 때문에 컴파일 캐싱를 사용할 수 없다. 미리 debian8의 이미지로 먼저 빌드해보면서 적절한 LLVM 설정값을 찾고, 그것을 도커 스크립트를 저장하는 것이 더 현명한 방법이다.