Armadilloフォーラム

コンパイルオプションの確認

sirakawa

2022年8月19日 13時35分

いつもお世話になっております。
Armadillo-420でのソフトウェア開発の中で、
あるライブラリの提供元の会社に「この設定でビルドをしてほしい」と依頼したいです。

atmarkdist上のアプリケーション(弊社で追加したもの)のCFLAGSに-vを追加し、以下を確認しました。
コンパイラ:
 arm-linux-gnueabi-gcc version 4.6.3 (Debian 4.6.3-14atmark1)
オプション:
 ・-march=armv4t
 ・-mfloat-abi=soft

上記のオプションで不足していますでしょうか?
不足している場合は確認方法をご教示いただけると大変助かります。

コメント

溝渕です。

> atmarkdist上のアプリケーション(弊社で追加したもの)のCFLAGSに-vを追加し、以下を確認しました。
> コンパイラ:
>  arm-linux-gnueabi-gcc version 4.6.3 (Debian 4.6.3-14atmark1)
> オプション:
>  ・-march=armv4t
>  ・-mfloat-abi=soft

上記、CPUに対するオプションですが、手動で追加していますか?

[atde]$ arm-linux-gnueabi-gcc -Q -v

のようにすると、デフォルトで指定されるオプションが確認されると思います。

marchやmtuneは互換性の無いアーキテクチャを選択しない限りは動くと思います。atmarkdistでは指定していません。

eabi用のコンパイラ(arm-linux-gnueabi-gcc)はVFPを使わないので、software floatを明示的に指定しなくても良いかなとは思います。

> 上記のオプションで不足していますでしょうか?
> 不足している場合は確認方法をご教示いただけると大変助かります。

最終的にやりたい事は、

> いつもお世話になっております。
> Armadillo-420でのソフトウェア開発の中で、
> あるライブラリの提供元の会社に「この設定でビルドをしてほしい」と依頼したいです。

だと思います。atdeにインストールされているArmadillo用のライブラリとの互換性の問題が発生するのを避ける為に、atdeでビルドしてもらうよう依頼するのが無難かなと思います。

溝渕様
ご回答ありがとうございます。

> 上記、CPUに対するオプションですが、手動で追加していますか?
いえ、こちらでは指定していません。
Armadillo-420用のatmarkdistに、弊社で作成したアプリを追加したのみとなります。

> [atde]$ arm-linux-gnueabi-gcc -Q -v

たしかにこのコマンドでは指定されていないことが確認できました。

> marchやmtuneは互換性の無いアーキテクチャを選択しない限りは動くと思います。atmarkdistでは指定していません。

そうなのですね。。。
何らかのconfigが影響して、CPUに合った設定にされているのだと考えていました。

> だと思います。atdeにインストールされているArmadillo用のライブラリとの互換性の問題が発生するのを避ける為に、atdeでビルドしてもらうよう依頼するのが無難かなと思います。

承知しました。
その内容で依頼してみます。ありがとうございます。

溝渕様
期間が空いてしまったのですが、追加で確認させてください。

> atdeでビルドしてもらうよう依頼するのが無難かなと思います。
ATDE上で静的ライブラリを作成する方法のサンプルなどございますでしょうか?

溝渕です。

> ATDE上で静的ライブラリを作成する方法のサンプルなどございますでしょうか?

前提としてですが、基本的にATDEはDebianをベースにクロス開発環境をインストールしただけのものとなります。

なので、ATDE固有のビルド手順等はありません。調べる際は、Debian(PC linux)環境で静的ライブラリを作成する手順を検索します。

「debian 静的ライブラリ ビルド」で検索すると、例えば次のようなページがヒットします。
https://qiita.com/Pirlo/items/8261361f2c153e104054

armelアーキテクチャへのクロスビルドなので、gccやarにはprefixとして"arm-linux-gnueabi-"が付く事に注意してください。

溝渕様
ご回答ありがとうございます。参考にさせていただきます。

> armelアーキテクチャへのクロスビルドなので、gccやarにはprefixとして"arm-linux-gnueabi-"が付く事に注意してください。
「ar」でトライしてしまっていました。助かりました。