[Armadillo:06730] Re: Debian lenny EABI バージョンについて

email@hidden
2011年 2月 4日 (金) 09:32:43 JST


天城です。

しばらく、Armadilloはデータロガーとして現場に出張してたのでその後の
テストが出来ませんでした。昨日戻ってきましたので少し触った結果を。
(本文中にレスを入れさせてもらいます)

----- Original Message -----
>Date: Fri, 28 Jan 2011 13:37:01 +0900
>From: Yasushi SHOJI <email@hidden>
>To: Armadillo series general discussion list
>	<email@hidden>
>Subject: [Armadillo:06670] Re:
> Debian lenny EABI バージョンについて
>
>
>At Fri, 28 Jan 2011 12:07:55 +0900 (JST),
>天城 wrote:
>> 
>> 同じディレクトリに、ARM OABI、ARM EABI(4),ARM EABI(5)それに386のバイナリ
を
>> 置いて、実行すると 386のバイナリだけ、
>> 
>> -bash: .xxxxx.386: cannot execute binary file
>> 
>> とファイル認識しますが、他のファイルはNo such file or directoryになります。
>> 
>> ちなみに、awkをこのディレクトリにコピーして、実行すれば実行されます。
>
>Lazarus って、どうやってバイナリを生成しているんでしたっけ? pascal ->
>c -> binary?  それとも、GPCですか? そのときに、binary を生成するのは、
>クロスコンパイラですか?

Lazarus自体はGUI統合開発環境で、実際のコンパイルはFPC(Free Pascal Compiler/obj
ect pascal)で行います。
その後、binutils-2.20のarm-linux-as、arm-linux-ldでアセンブル、リンクを行って
います。
oabi,eabiの指定はarm-linux-asでオプションで、-meabi=4、-meabi=4、無(oabi)とし
ています。

>
>バイナリファイルが必要としている shared library は、
>全部ありますか?
>
>	$ ldd ./lazarus_50fx_demo
>
>とすると表示されます。
>

lddも同様のエラーが発生します。
debian:/home/lazarus# ldd ./lazarus_500fx_demo 
/usr/bin/ldd: line 116: ./lazarus_500fx_demo: No such file or directory

lddってちょっと調べたら、スクリプトだったんですね。116行で、環境変数を付加した
形で
evalで「lazarus_500fx_demo」を評価してたのでbashで実行したときと同じエラーとな
ってる
見たいです。

ちなみにreadelf -all lazarus_500fx_demoでは、読み取ることが出来ます。
ただ、SQLite3、GTK、Indynなど色々使ってるのでサイズが大きすぎて解析も
大変そうなので、時間があるとき基本となるGUIを使わない、コンソールアプリとして
「hello, world」を作ってreadelfを調べてみたいと思います。



>必要とされている shared library は、実行環境と同じ architecture ですか?
>ちなみに、debian の場合
>
>	$ dpkg --print-architecture
>
>とするこで、環境の archtecture を調べることができます。
>-- 
>          yashi
>
>_______________________________________________

debian:/home/lazarus# dpkg --print-architecture
armel
となっております。

FPCのクロスコンパイラ自身のコンパイルには、

make crossinstall CPU_TARGET=arm OS_TARGET=linux CROSSBINDIR=/home/lazarus/laz
arus/fpc/binutils OPT=-dFPC_ARMEL  INSTALL_PREFIX=/usr 

と、「OPT=0dFPC_ARMEL」でarmelの指定をしています。

リンクで必要となるライブラリ等は、atde3のライブラリをコピーし、足りないものはD
ebianのパッケージから
ダウンロードして使ってます。

そう言えば、Debian lennyのダウンロードで、armとarmelと有り、armelでダウンロー
ドしましたけど、
もしかしてarmの方がよかったのでしょうか? arm=OABIか思い込んでましたが、違っ
てますか?

とりあえず、時間がとれたときに「hello, world」を実験してみます。






armadillo メーリングリストの案内