2016-05-04 22 views
0

私は自分のaarch64ベースのデバイス用にカーネルをコンパイルしようとしていますARM EABIツールチェーンをコンパイルするには?

カーネルソースが用意されています。

とカーネルのドキュメントでは、コンパイルカーネル用にARM EABIのarm-eabi-4.9ツールチェーンを使用するべきだと言っています。

しかし、それは何ですか?異なるタイプのGCCコンパイラまたは何ですか?

GCC 4.9と同じですか?

私はコンパイラにいくつかの変更を加えたいので、これを知りたいのですがどうすればいいですか?ARM EABIのarm-eabi-4.9ツールチェーンソースから?

私はネット上でいくつかの研究を行っているが、私はGCC 4.9 this

の上に、元々の修正を行った

... GCC 4.9とアームなし、EABIに関するいくつかの情報の構築プロセスを発見しましたこのソースを使って、arm、aarch64 --->用GCC 4.9ツールチェーンを構築してから、このツールチェーンを使ってカーネルをビルドすることはできますか?

答えて

1

gccをコンパイルすると、いくつかの設定フラグがクロスコンパイラとしてビルドされます。ホスト/ターゲットアーキテクチャの1組に対してのみ、gccバイナリをビルドできます。ホストとターゲットが同じ場合、通常のgccコンパイラが得られます。そうでない場合は、クロスコンパイラを取得します。

あなたが追加する必要が目標を設定するには--target option./configure

ツールチェーンは、アーキテクチャ+(glibcのような)いくつかの基本的なライブラリのgccのcrosscompilierあるを実行しています。あなたも、それらを構築する必要があります...

ツールチェイン名はアーチ[-vendor] [-OS]で行く -

をEABIアームなし - EABI、baremetal ARM用クロスコンパイラです(OSなし)。

arm-linux-gnueabiは、eabiを使用してARM Linux OSで実行されるARMバイナリのクロスコンパイラです(カーネルの構築にもこれを使用します)。

また、これらのアームツールチェーンです、あなたが事前に作成ツールチェーン(リナロ、embedian)を探して考えてみましょうaarch64-のlinux-gnuの

を探している、必要ないくつかの微調整があり、それが良いですので、動作中のバイナリから始めて、それがどのようにビルドされたかを示すためにgcc -vを実行することです。

+0

返信いただきありがとうございますので、以下のgccソースを変更/使用してhttps://github.com/gcc-mirror/gcc/tree/gcc-4_9-branchを使用してから、aarch64-linux-gnueabiコンパイルを開始してからツールチェーンをコンパイルする前に? –

+0

はい、 '--target = aarch64-linux-gnu'です。これで十分でない場合は、[linaro toolchains](https://releases.linaro.org/14.11/components/toolchain/binaries/)で使用されている設定と設定を比較してください – xvan

+0

私のホストマシンはubuntu 14.04ですので、ıが次を見つけましたgccコンパイラhttps:// solarianprogrammerのビルド方法に関する3件の記事com/2014/08/26/building-gcc-on-ubuntu-linux/https://raghunathlolur.wordpress.com/2014/06/17/cross-compiling-gcc-4-8-3-for-aarch64-ポート/ http://preshing.com/20141119/how-to-build-a-gcc-cross-compiler/ –

関連する問題