0
i686ホスト環境(32ビットUbuntu Dockerコンテナ)内でGCC 5.3を使用してi586ターゲット(MMX命令なし)用にビルドする必要があります。ホストツールチェインはi686です。とにかくこれを行うにはi586クロスコンパイラを構築せずにいますか?GCC 5.3でi586ターゲットをビルドする必要があります。i686ホストツールチェイン
i686ホスト環境(32ビットUbuntu Dockerコンテナ)内でGCC 5.3を使用してi586ターゲット(MMX命令なし)用にビルドする必要があります。ホストツールチェインはi686です。とにかくこれを行うにはi586クロスコンパイラを構築せずにいますか?GCC 5.3でi586ターゲットをビルドする必要があります。i686ホストツールチェイン
はい、-march=cpu-type
オプションを指定すると、特定のマシンタイプの命令を生成するようにgccに指示できます。 gccのドキュメントのx86 Optionsを参照してください。だからこのようなものが必要になります:
g++ -march=i586 [...]
それを試してみました。生成されたバイナリは、ターゲット上では動作しません。静的バイナリもコンパイルされており、glibcからの可能性が最も高いMMX命令が含まれていました。 – crayguy
私はあなたがターゲットマシンにインストールされているlibcバージョン(またはより小さなもの)にリンクしなければならないと信じています。私はあなたのビルドシステム上で古いlibcバージョンをコンパイルしようとします(再び-march = i586を使用して)、それに対してリンクします。これはおそらく役立ちます:[http://stackoverflow.com/questions/2728552/how-to-link-to-a-different-libc-file](http://stackoverflow.com/questions/2728552/how-to- link-to-a-different-libc-file) – Wurmloch