macOS ARMhf Cross Compile 환경 구성

macOS ARMhf Cross Compile 환경 구성


제목과 달리 사실 Mac OS X 10.11.6 El Capitan 환경에서 구성했다.

하지만 Xcode는 최신 8.0이며, crosstool-nggit에서 clone 받은 최신 코드를 사용한다.

참고로 arm-linux-gnueabi-이미 컴파일되어서 돌아다니는 녀석이 있다.
그걸 그대로 갖다 쓰면 되니까..

기반이 된 자동화된 스크립트가 있다.
https://github.com/uboreas/ctworks
하지만 이 스크립트는 14.08 및 14.09 기반이며 그것도 모자라 실제로 돌려보면 제대로 되지 않는다.

그래서 최신 버전만 골라 골라 시도해보았다.
그 결과가 바로 아래 놈.
https://github.com/devbug/ctworks

기본적으로 ctworks와 같이 10GB의 여유공간 및 인터넷 연결, MacPorts로 몇몇 녀석들을 설치할 필요가 있다.

./ctosx
./ctosx build configs/gcc-6.1.0-arm-linux-gnueabihf-ct-ng.config
./ctosx eject

정도로 하면 된다.

하다가 문제가 생겼으면 reconfigurecrosstool-ng를 다시 컴파일하거나, menuconfigcrosstool-ng의 .config를 바꾼다던가, list-stepsrestart를 할 수도 있다.
restart가 아닌, 현재 설정으로 처음부터 다시 gcc-linaro의 빌드를 하고자 한다면 그냥 build만 입력해도 된다.

기본적으로 들어가있는 configs는 gcc-linaro 5.4.06.1.0이며 crosstool-ng의 버전은 post 1.22이다.
년월 방식의 버전은.. 그런거 없다..

gcc/g++ 및 gdb, statically linked gdbserver를 탑제하고 있다.

참고자료:
https://www.linaro.org/
https://clxdev.wordpress.com/2016/06/20/building-linaro-toolchains-on-os-x/ == https://github.com/uboreas/ctworks
http://elinux.org/RPiLinaroGCC_Compilation
https://wiki.linaro.org/WorkingGroups/ToolChain/Using/CrosstoolNg
http://www.coole.me/notes/02-02-2014/osx-crosstool-ng.html