번역 | SonarCFamily Not Supports ARM Compilers

> 이글은 https://blog.sonarsource.com/sonarcfamily-now-supports-arm-compilers/를 번역한 글입니다.


ARM (Advanced RISC Machine)에 익숙하지 않은 분들을 위해, 몇 가지 숫자와 함께 이야기를 시작하겠스비다: 2011년 32-bit ARM 아키텍처는 모바일 장비들에서 가장 널리 사용되었으며, 임베디드 시스템에서 가장 유명한 32-bit 아키텍처입니다 (참조). 또한 2013년에는 10 billion 이상 개의 칩이 생산되었으며 (참조), "ARM 기반의 칩은 전세계 모바일 디바이스 시장의 60$ 가량을 점유하고 있습니다"  (참조).

ARM이 임베디드 시스템 영역에서 이렇게 유명한 이유는 무엇일까요? RISC 아키텍쳐는 대부분의 개인용 컴퓨터에서 사용하는 x86 프로세서와 같은 CISC (Complex Instruction Set Computing) 아키텍처와 비교해 적은 수의 트랜지스터를 필요로 하며, 결과적으로 저비용, 저전력, 저방열의 특성을 가집니다. 이러한 특성들은 가볍고, 휴대 가능하며, 배터리 전원으로 동작해야하는 기기들–스마트폰, 노트북, 태블릿 컴퓨터 및 다른 임베디드 시스템들--에게 필수적인 특성들입니다.

ARM  아키텍처를 사용하는 대부분의 개발자들은, C 혹은 C++ 언어로 개발을 하며, ARM 머신에서 사용할 수 있는 바이너리 코드를 생성하는 컴파일러를 사용합니다 GCC 및 Clang은 기본적으로 ARM 모드를 지원합니다. 하지만 여러분이 런타임 풋프린트를 줄이기 위해 세심하게 튜닝된 바이너리를 생성해야 하는 경우라면, 아마도 ARM5ARM6 혹은 Linaro와 같은 컴파일러들을 사용해야 할 것입니다.

SonarCFamily 버전 4.8부터 이와 같은 모든 ARM 계열 컴파일러들을 지원하게 되었으며, 이는 우리가 오랫동안 바라던 것이었습니다.

ARM 아키텍처를 대상으로 하는 C/C++ 프로젝트 분석은 다른 종류의 C/C++ 분석과 크게 다르지 않으나, 리마인드 차원에서 분석 절차를 소개합니다:

# Windows 혹은 Linux의 ARM DS-5가 활성화 된 환경:
make clean
build-wrapper-[win|linux]-x86-64 --out-dir <output directory> make
# set sonar.cfamily.build-wrapper-output= on sonar-project.properties
sonar-scanner

혹은 Linux에서 ARM 환경이 없는 경우, 콘솔에서 다음을 수행합니다:

/usr/local/DS-5_v5.26.2/bin/suite_exec -t "ARM Compiler 5 (DS-5 built-in)" make clean
build-wrapper-linux-x86-64 --out-dir /usr/local/DS-5_v5.26.2/bin/suite_exec -t "ARM Compiler 5 (DS-5 built-in)" make
# sonar-project.properties 파일에서 sonar.cfamily.build-wrapper-output=<output directory> 설정
sonar-scanner


ARM 아키텍처 용으로 컴파일 된 소스 코드를 분석해 보면, 분석 엔진의 강력함을 알게 될 것입니다: 수백 여개의 규칙들이 끔찍한 이슈들을 찹아 내며, 데이터 흐름 기반의 분석도 수행합니다!

또한, SonarCFamily v4.8은 SonarLint 와 완벽하게 호환됩니다. 즉, Eclipse 혹은 그 어떤 Eclipse CDT를 사용하는 ARM DS-5 개발자들이라도 SonarLint를 활용해 작성 중인 코드를 실시간으로 분석할 수 있습니다. 이를 통해 개발 피드백을 효과적으로 줄이고, 결함이 "이미 존재하기 전에!" 식별하고 조치할 수 있습니다.

© 2017-2018 Moses Kim.

별도의 언급이 없는 한, 이 스페이스의 컨텐츠는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
SONARQUBE는 SonarSource SA의 트레이드 마크입니다. 모든 트레이트 마크 및 저작권은 각 소유자의 소유물입니다.

::: SonarQube 관련 문의 : 이메일 :::