ブログ

Armadillo-440(Linux-3.14):gcov関連のビルドエラー

at_kazutaka.bito
2016年6月26日 15時38分

ATDE5:atde5-amd64-20151218 で、Armadillo-440用のビルドをかけると、

cp: `/usr/arm-linux-gnueabi/lib/gconv/gconv-modules' を stat できません: そのようなファイルやディレクトリはありません
cp: `/usr/arm-linux-gnueabi/lib/gconv/ISO8859-1.so' を stat できません: そのようなファイルやディレクトリはありません
make[1]: *** [romfs] エラー 1
make[1]: ディレクトリ `/home/atmark/atmark-dist-20160527/vendors/AtmarkTechno/gdb-440' から出ます
make: *** [romfs] エラー 2

のようなエラーに遭遇しました。

解決方法はフォーラムの glibc 脆弱性 バッファオーバーフローについて (CVE-2015-7547) で紹介されていますが、ここに抜粋します。

2016/02/17 にリリースした libc6 のクロスパッケージには、昨年2015/12に追加された
Armadillo-440向けの X.org ビルド用の変更(クロスパッケージへのgconvリソース追加)
が含まれません。
この処理を追加したパッケージは 2016/02/25 12:00 に apt リポジトリにアップロード済みです。
 
この変更が無いとしてもArmadillo-IoTのビルドには一切影響はありません。また、脆弱性には関係しません。
 
「ATDE5でArmadillo-440向けにAtmark Dist で X.org を含むユーザーランドをビルドする」際は
 2016/02/17 15:00 から 2016/02/25 12:00 の間に apt-get update && apt-get upgrade
している場合は、下記の手順で再インストールを実行してください。
sudo apt-get update
sudo apt-get install --reinstall libc6-armel-cross
sudo apt-get install --reinstall libc6-armhf-cross
 
 2016/02/17 15:00 から 2016/02/25 12:00 の間に apt-get update && apt-get upgrade
を実行していないのであれば、現時点で apt-get update && apt-get upgradeを実行する
と更新済みのlibc6のクロスパッケージが導入されます。

ちなみに、当方は、たまたま 「2016/02/17 15:00 から 2016/02/25 12:00 の間に apt-get update && apt-get upgradeしている場合」 の条件にはまっていたらしく、apt-get update && apt-get upgradeだけではエラーが治らず、

sudo apt-get update
sudo apt-get install --reinstall libc6-armel-cross
sudo apt-get install --reinstall libc6-armhf-cross

を実行することで、正常にビルドできました。