[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 メーリングリストの案内