[fedora-arm] Regenerating the cross stuff

Andy Green andy at warmcat.com
Tue Aug 3 10:59:52 UTC 2010


On 08/03/10 11:50, Somebody in the thread at some point said:

>> Hum if I go down into the rpmbuild/BUILD where it was made, I can see
>> the original .o and it's fine
>>
>> [agreen at otae libgcc]$ armv5tel-redhat-linux-gnueabi-objdump -f
>> _thumb1_case_sqi.o
>>
>> _thumb1_case_sqi.o:     file format elf32-littlearm
>> architecture: arm, flags 0x00000011:
>> HAS_RELOC, HAS_SYMS
>> start address 0x00000000
>>
>> The one that is extracted from the .a file -- surely it is from the
>> above file though -- is broken
>>
>> [agreen at otae tmp]$ armv5tel-redhat-linux-gnueabi-objdump -f
>> _thumb1_case_sqi.o
>>
>> _thumb1_case_sqi.o:     file format elf32-little
>> architecture: UNKNOWN!, flags 0x00000010:
>> HAS_SYMS
>> start address 0x00000000
>
> Can you do a bitwise compare between the two files?  (Are they even the
> same length?)  Bitflip somewhere maybe?

The original is 1560 the extracted is only 686, it just because it's 
stripped though

[agreen at otae libgcc]$ armv5tel-redhat-linux-gnueabi-readelf -a 
_thumb1_case_sqi.o
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:                              REL (Relocatable file)
   Machine:                           ARM
   Version:                           0x1
   Entry point address:               0x0
   Start of program headers:          0 (bytes into file)
   Start of section headers:          624 (bytes into file)
   Flags:                             0x5000000, Version5 EABI
   Size of this header:               52 (bytes)
   Size of program headers:           0 (bytes)
   Number of program headers:         0
   Size of section headers:           40 (bytes)
   Number of section headers:         16
   Section header string table index: 13

Section Headers:
   [Nr] Name              Type            Addr     Off    Size   ES Flg 
Lk Inf Al
   [ 0]                   NULL            00000000 000000 000000 00 
  0   0  0
   [ 1] .text             PROGBITS        00000000 000034 000014 00  AX 
  0   0  4
   [ 2] .data             PROGBITS        00000000 000048 000000 00  WA 
  0   0  1
   [ 3] .bss              NOBITS          00000000 000048 000000 00  WA 
  0   0  1
   [ 4] .note.GNU-stack   PROGBITS        00000000 000048 000000 00 
  0   0  1
   [ 5] .ARM.attributes   ARM_ATTRIBUTES  00000000 000048 000016 00 
  0   0  1
   [ 6] .debug_line       PROGBITS        00000000 00005e 000068 00 
  0   0  1
   [ 7] .rel.debug_line   REL             00000000 0005e0 000008 08 
14   6  4
   [ 8] .debug_info       PROGBITS        00000000 0000c6 0000e1 00 
  0   0  1
   [ 9] .rel.debug_info   REL             00000000 0005e8 000020 08 
14   8  4
   [10] .debug_abbrev     PROGBITS        00000000 0001a7 000014 00 
  0   0  1
   [11] .debug_aranges    PROGBITS        00000000 0001c0 000020 00 
  0   0  8
   [12] .rel.debug_arange REL             00000000 000608 000010 08 
14  11  4
   [13] .shstrtab         STRTAB          00000000 0001e0 00008d 00 
  0   0  1
   [14] .symtab           SYMTAB          00000000 0004f0 0000d0 10 
15  12  4
   [15] .strtab           STRTAB          00000000 0005c0 00001d 00 
  0   0  1
Key to Flags:
   W (write), A (alloc), X (execute), M (merge), S (strings)
   I (info), L (link order), G (group), x (unknown)
   O (extra OS processing required) o (OS specific), p (processor specific)

There are no section groups in this file.

There are no program headers in this file.

Relocation section '.rel.debug_line' at offset 0x5e0 contains 1 entries:
  Offset     Info    Type            Sym.Value  Sym. Name
00000053  00000102 R_ARM_ABS32       00000000   .text

Relocation section '.rel.debug_info' at offset 0x5e8 contains 4 entries:
  Offset     Info    Type            Sym.Value  Sym. Name
00000006  00000802 R_ARM_ABS32       00000000   .debug_abbrev
0000000c  00000902 R_ARM_ABS32       00000000   .debug_line
00000010  00000102 R_ARM_ABS32       00000000   .text
00000014  00000102 R_ARM_ABS32       00000000   .text

Relocation section '.rel.debug_aranges' at offset 0x608 contains 2 entries:
  Offset     Info    Type            Sym.Value  Sym. Name
00000006  00000602 R_ARM_ABS32       00000000   .debug_info
00000010  00000102 R_ARM_ABS32       00000000   .text

There are no unwind sections in this file.

Symbol table '.symtab' contains 13 entries:
    Num:    Value  Size Type    Bind   Vis      Ndx Name
      0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
      1: 00000000     0 SECTION LOCAL  DEFAULT    1
      2: 00000000     0 SECTION LOCAL  DEFAULT    2
      3: 00000000     0 SECTION LOCAL  DEFAULT    3
      4: 00000000     0 SECTION LOCAL  DEFAULT    4
      5: 00000000     0 NOTYPE  LOCAL  DEFAULT    1 $t
      6: 00000000     0 SECTION LOCAL  DEFAULT    8
      7: 0000000c     0 NOTYPE  LOCAL  DEFAULT   11 $d
      8: 00000000     0 SECTION LOCAL  DEFAULT   10
      9: 00000000     0 SECTION LOCAL  DEFAULT    6
     10: 00000000     0 SECTION LOCAL  DEFAULT   11
     11: 00000000     0 SECTION LOCAL  DEFAULT    5
     12: 00000001    18 FUNC    GLOBAL HIDDEN     1 __gnu_thumb1_case_sqi

No version information found in this file.
Attribute Section: aeabi
File Attributes
   Tag_CPU_arch: v4T
   Tag_THUMB_ISA_use: Thumb-1
   Tag_ABI_align8_preserved: Yes, except leaf SP


(this next guy was pulled from the .a like this -->

[agreen at otae tmp]$ armv5tel-redhat-linux-gnueabi-ar x 
/usr/lib/gcc/armv5tel-redhat-linux-gnueabi/4.5.0/libgcc.a )


[agreen at otae tmp]$ armv5tel-redhat-linux-gnueabi-readelf -a 
_thumb1_case_sqi.o
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:                              REL (Relocatable file)
   Machine:                           None
   Version:                           0x1
   Entry point address:               0x0
   Start of program headers:          0 (bytes into file)
   Start of section headers:          172 (bytes into file)
   Flags:                             0x5000000
   Size of this header:               52 (bytes)
   Size of program headers:           0 (bytes)
   Number of program headers:         0
   Size of section headers:           40 (bytes)
   Number of section headers:         9
   Section header string table index: 6

Section Headers:
   [Nr] Name              Type            Addr     Off    Size   ES Flg 
Lk Inf Al
   [ 0]                   NULL            00000000 000000 000000 00 
  0   0  0
   [ 1] .text             PROGBITS        00000000 000034 000014 00  AX 
  0   0  4
   [ 2] .data             PROGBITS        00000000 000048 000000 00  WA 
  0   0  1
   [ 3] .bss              NOBITS          00000000 000048 000000 00  WA 
  0   0  1
   [ 4] .note.GNU-stack   PROGBITS        00000000 000048 000000 00 
  0   0  1
   [ 5] .ARM.attributes   LOPROC+3        00000000 000048 000016 00 
  0   0  1
   [ 6] .shstrtab         STRTAB          00000000 00005e 00004c 00 
  0   0  1
   [ 7] .symtab           SYMTAB          00000000 000214 000080 10 
  8   7  4
   [ 8] .strtab           STRTAB          00000000 000294 00001a 00 
  0   0  1
Key to Flags:
   W (write), A (alloc), X (execute), M (merge), S (strings)
   I (info), L (link order), G (group), x (unknown)
   O (extra OS processing required) o (OS specific), p (processor specific)

There are no section groups in this file.

There are no program headers in this file.

There are no relocations in this file.

There are no unwind sections in this file.

Symbol table '.symtab' contains 8 entries:
    Num:    Value  Size Type    Bind   Vis      Ndx Name
      0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
      1: 00000000     0 NOTYPE  LOCAL  DEFAULT    1 $t
      2: 00000000     0 SECTION LOCAL  DEFAULT    1
      3: 00000000     0 SECTION LOCAL  DEFAULT    2
      4: 00000000     0 SECTION LOCAL  DEFAULT    3
      5: 00000000     0 SECTION LOCAL  DEFAULT    4
      6: 00000000     0 SECTION LOCAL  DEFAULT    5
      7: 00000001    18 FUNC    GLOBAL HIDDEN     1 __gnu_thumb1_case_sqi

No version information found in this file.


It's a bit like something wrote an int to the wrong place in the header 
somewhere along the line.

-Andy


More information about the arm mailing list