[Armadillo:06674] Re: Debian lenny EABI バージョンについて
Takenoshita Koyo
email@hidden
2011年 1月 28日 (金) 15:45:18 JST
竹之下です。
EABI version 4とEABI version 5は、中身は一緒なのですが、
バージョンが異なるもののようです。
http://sourceware.org/ml/gdb-patches/2006-11/msg00017.html
gcc 4.3では、EABI version 4として生成しますが、
gcc 4.4からは、EABI version 5となります。
http://gcc.gnu.org/ml/gcc-patches/2009-01/msg00708.html
ATDE3で環境を作ったArmadillo-440(ライブラリは全てEABI Version 4)で、
EABI Version 5なバイナリを実行してみたところ、一応動くようです。
[PC ~]$ arm-linux-gnueabi-gcc --version
arm-linux-gnueabi-gcc (Debian 4.4.5-8) 4.4.5
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[PC ~]$ arm-linux-gnueabi-gcc hello.c -o hello-eabiv5
[PC ~]$ arm-linux-gnueabi-readelf -h hello-eabiv5 | grep Flags
Flags: 0x5000002, has entry point, Version5 EABI
[email@hidden (ttymxc1) /home/ftp/pub]# ./hello-eabiv5
hello world
なので、EABIのversionはあまり関係ないかと思います。
「No such file or directory」となる現象はあまり見た記憶がありません。
なにかを見落としていると思うのですが。。
天城 さんは書きました:
> 天城です。
>
> EABIをバージョン4にしても結果は同じでした。
>
> 同じディレクトリに、ARM OABI、ARM EABI(4),ARM EABI(5)それに386のバイナリを
> 置いて、実行すると 386のバイナリだけ、
>
> -bash: .xxxxx.386: cannot execute binary file
>
> とファイル認識しますが、他のファイルはNo such file or directoryになります。
>
> ちなみに、awkをこのディレクトリにコピーして、実行すれば実行されます。
>
> 何か、勘違いしてるかも知れません、また後ほどインストール、環境など調べ直して見
> ます。
>
>
> ----- Original Message -----
>> Date: Fri, 28 Jan 2011 11:06:16 +0900 (JST)
>> From: email@hidden
>> To: email@hidden
>> Subject: [Armadillo:06666]
>> Debian lenny EABI バージョンについて
>>
>>
>> お世話になります、天城です。
>>
>> Armadillo-500FX、Debian lennyでXは動くようになり、GUIアプリケーションの作成で
>> 、
>> Lazarusからのオブジェクトファイル形式をOABIから、EABI Version5にして実行した
> と
>> ころ、
>>
>> -bash: ./lazarus_500fx_demo: No such file or directory
>>
>> との、エラーが発生しました。
>>
>> 最初はファイルが見付からないのかと思ったのですが、 sh ./lazarus_50fx_demoとす
>> ると、
>>
>> ./lazarus_500fx_demo: ./lazarus_500fx_demo: cannot execute binary file
>>
>> との、エラーが出るので、シェルではアプリのファイルを認識してるようです。
>>
>> で、少し気になったのが、こちらの作成したEABIはVersion5ですが、調べると
>> lennyの各ファイルのバージョンはEABI Version4のようです。
>> Version4にあわせる必要があるのでしょうか?
>>
>> 参考までに、当方のアプリは
>>
>> email@hidden:~$ readelf -all lazarus_500fx_demo | head -30
>> ELF Header:
>> Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
>> Class: ELF32
>> Data: 2's complement, little endian
>> Version: 1 (current)
>> OS/ABI: UNIX - System V
>> ABI Version: 0
>> Type: EXEC (Executable file)
>> Machine: ARM
>> Version: 0x1
>> Entry point address: 0x22db4
>> Start of program headers: 52 (bytes into file)
>> Start of section headers: 6289188 (bytes into file)
>> Flags: 0x5000002, has entry point, Version5 EAB
> I
>> Size of this header: 52 (bytes)
>> Size of program headers: 32 (bytes)
>> Number of program headers: 5
>> Size of section headers: 40 (bytes)
>> Number of section headers: 21
>> Section header string table index: 20
>>
>> Section Headers:
>> [Nr] Name Type Addr Off Size ES Flg Lk Inf
>
>> Al
>> [ 0] NULL 00000000 000000 000000 00 0 0
>
>> 0
>> [ 1] .interp PROGBITS 000100d4 0000d4 000013 00 A 0 0
>
>> 1
>> [ 2] .hash HASH 000100e8 0000e8 002330 04 A 3 0
>
>> 4
>> [ 3] .dynsym DYNSYM 00012418 002418 004c30 10 A 4 1
>
>> 4
>> [ 4] .dynstr STRTAB 00017048 007048 007077 00 A 0 0
>
>> 1
>> [ 5] .gnu.version VERSYM 0001e0c0 00e0c0 000986 02 A 3 0
>
>> 2
>> [ 6] .gnu.version_r VERNEED 0001ea48 00ea48 000060 00 A 4 3
>
>> 4
>> email@hidden:~$
>>
>>
>> となっていますが、例えばawkの場合
>>
>> email@hidden:~$ readelf -all /usr/bin/awk | head -30
>> ELF Header:
>> Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
>> Class: ELF32
>> Data: 2's complement, little endian
>> Version: 1 (current)
>> OS/ABI: UNIX - System V
>> ABI Version: 0
>> Type: EXEC (Executable file)
>> Machine: ARM
>> Version: 0x1
>> Entry point address: 0x8f40
>> Start of program headers: 52 (bytes into file)
>> Start of section headers: 99352 (bytes into file)
>> Flags: 0x4000002, has entry point, Version4 EAB
> I
>> Size of this header: 52 (bytes)
>> Size of program headers: 32 (bytes)
>> Number of program headers: 8
>> Size of section headers: 40 (bytes)
>> Number of section headers: 27
>> Section header string table index: 26
>>
>> Section Headers:
>> [Nr] Name Type Addr Off Size ES Flg Lk Inf
>
>> Al
>> [ 0] NULL 00000000 000000 000000 00 0 0
>
>> 0
>> [ 1] .interp PROGBITS 00008134 000134 000013 00 A 0 0
>
>> 1
>> [ 2] .note.ABI-tag NOTE 00008148 000148 000020 00 A 0 0
>
>> 4
>> [ 3] .hash HASH 00008168 000168 000224 04 A 4 0
>
>> 4
>> [ 4] .dynsym DYNSYM 0000838c 00038c 000440 10 A 5 1
>
>> 4
>> [ 5] .dynstr STRTAB 000087cc 0007cc 0001cf 00 A 0 0
>
>> 1
>> [ 6] .gnu.version VERSYM 0000899c 00099c 000088 02 A 4 0
>
>> 2
>> email@hidden:~$
>>
>> と、EABI Version4となってます。
>>
>> _______________________________________________
>> armadillo mailing list
>> email@hidden
>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>
--
Koyo Takenoshita
armadillo メーリングリストの案内