gcc-4.9

ホスト Debian 8.x jessie

gcc 4.9, 5, 6 ではcross-gcc-gensourceというツールが使える。

binutils-2.25を完了させておくこと

準備

# apt-get install libc6-dev:armhf
# apt-get build-dep gcc-4.9

作業ディレクトリを作る

# cd                       rootユーザのhomeに戻る
# mkdir -p build/gcc-4.9
# cd build/gcc-4.9

ソースの取得

# apt-get install cross-gcc-dev gcc-4.9-source
# TARGET_LIST="armhf" HOST_LIST="amd64" cross-gcc-gensource 4.9
# cd cross-gcc-packages-amd64/cross-gcc-4.9-armhf/

ビルド実行

# time dpkg-buildpackage -uc -us

ビルド時間

real    18m0.569s
user    25m3.984s
sys     1m50.168s

インストール

# cd ../
# ls  *.deb
cpp-4.9-arm-linux-gnueabihf_4.9.2-10_amd64.deb  gcc-4.9-arm-linux-gnueabihf_4.9.2-10_amd64.deb
g++-4.9-arm-linux-gnueabihf_4.9.2-10_amd64.deb  gfortran-4.9-arm-linux-gnueabihf_4.9.2-10_amd64.deb
# apt-get remove gcc-multilib g++-multilib 
# dpkg -i cpp-4.9-arm-linux-gnueabihf_4.9.2-10_amd64.deb \
          gcc-4.9-arm-linux-gnueabihf_4.9.2-10_amd64.deb \
          g++-4.9-arm-linux-gnueabihf_4.9.2-10_amd64.deb

おそらく依存関係のエラーが出るので

# apt-get -f install            依存関係の修復

再び上記の dpkg -i で3つのパッケージのインストールを試す(繰り返す)

symlinkを手作業で作る

# cd /usr/bin/
# ln -s arm-linux-gnueabihf-cpp-4.9 arm-linux-gnueabihf-cpp
# ln -s arm-linux-gnueabihf-gcc-4.9 arm-linux-gnueabihf-gcc
# ln -s arm-linux-gnueabihf-g++-4.9 arm-linux-gnueabihf-g++

リンク