[uClibc] anyone using ARM shared libraries?

David Meggy dmeggy at techsol.ca
Mon May 10 20:32:25 UTC 2004


There you go

$ readelf -r ld-uClibc-0.9.26.so 

Relocation section '.rel.dyn' at offset 0x88c contains 59 entries:
 Offset     Info    Type            Sym.Value  Sym. Name
0000c818  00000017 R_ARM_RELATIVE   
0000c81c  00000017 R_ARM_RELATIVE   
0000c820  00000017 R_ARM_RELATIVE   
0000c91c  00000017 R_ARM_RELATIVE   
0000c920  00000017 R_ARM_RELATIVE   
0000c924  00000017 R_ARM_RELATIVE   
0000c928  00000017 R_ARM_RELATIVE   
0000c92c  00000017 R_ARM_RELATIVE   
0000c930  00000017 R_ARM_RELATIVE   
0000c934  00000017 R_ARM_RELATIVE   
0000c938  00000017 R_ARM_RELATIVE   
0000c93c  00000017 R_ARM_RELATIVE   
0000c940  00000017 R_ARM_RELATIVE   
0000c944  00000017 R_ARM_RELATIVE   
0000c948  00000017 R_ARM_RELATIVE   
0000c94c  00000017 R_ARM_RELATIVE   
0000c950  00000017 R_ARM_RELATIVE   
0000c95c  00000017 R_ARM_RELATIVE   
0000c96c  00000017 R_ARM_RELATIVE   
0000c970  00000017 R_ARM_RELATIVE   
0000c974  00000017 R_ARM_RELATIVE   
0000c980  00000017 R_ARM_RELATIVE   
0000c984  00000017 R_ARM_RELATIVE   
0000c988  00000017 R_ARM_RELATIVE   
0000c990  00000017 R_ARM_RELATIVE   
0000c994  00000017 R_ARM_RELATIVE   
0000c998  00000017 R_ARM_RELATIVE   
0000c99c  00000017 R_ARM_RELATIVE   
0000c9a4  00000017 R_ARM_RELATIVE   
0000c9ac  00000017 R_ARM_RELATIVE   
0000c9b4  00000017 R_ARM_RELATIVE   
0000c9b8  00000017 R_ARM_RELATIVE   
0000c9c0  00000017 R_ARM_RELATIVE   
0000c9c8  00000017 R_ARM_RELATIVE   
0000c9cc  00000017 R_ARM_RELATIVE   
0000c9d0  00000017 R_ARM_RELATIVE   
0000c9d4  00000017 R_ARM_RELATIVE   
0000c9d8  00000017 R_ARM_RELATIVE   
0000c9dc  00000017 R_ARM_RELATIVE   
0000c9e0  00000017 R_ARM_RELATIVE   
0000c9e4  00000017 R_ARM_RELATIVE   
0000c9e8  00000017 R_ARM_RELATIVE   
0000c9f0  00000017 R_ARM_RELATIVE   
00000c48  00001c01 R_ARM_PC24        00000c78   _dl_linux_resolver
0000c918  00002715 R_ARM_GLOB_DAT    0000c818   _dl_progname
0000c954  00002815 R_ARM_GLOB_DAT    0000ca10   _dl_debug_addr
0000c958  00001815 R_ARM_GLOB_DAT    00000c30   _dl_linux_resolve
0000c960  00001d15 R_ARM_GLOB_DAT    0000ca1c   _dl_loaded_modules
0000c964  00001715 R_ARM_GLOB_DAT    0000ca20   _dl_symbol_tables
0000c968  00001615 R_ARM_GLOB_DAT    0000ca08   _dl_ldsopath
0000c978  00001e15 R_ARM_GLOB_DAT    0000ca04   _dl_preload
0000c97c  00003015 R_ARM_GLOB_DAT    0000ca00   _dl_library_path
0000c98c  00001b15 R_ARM_GLOB_DAT    00002858   _dl_debug_state
0000c9a0  00002415 R_ARM_GLOB_DAT    0000ca80   _dl_brkp
0000c9a8  00002d15 R_ARM_GLOB_DAT    0000caa0   _dl_envp
0000c9b0  00002215 R_ARM_GLOB_DAT    0000ca24   _dl_handles
0000c9bc  00001015 R_ARM_GLOB_DAT    0000ca40   _dl_internal_error_num
0000c9c4  00001415 R_ARM_GLOB_DAT    0000ca60   _dl_error_number
0000c9ec  00002c15 R_ARM_GLOB_DAT    0000ca2c   _dl_malloc_function

Relocation section '.rel.plt' at offset 0xa64 contains 18 entries:
 Offset     Info    Type            Sym.Value  Sym. Name
0000c8d0  00000e16 R_ARM_JUMP_SLOT   00003210   _dl_load_shared_librar
0000c8d4  00000f16 R_ARM_JUMP_SLOT   000028d4   _dl_unsetenv
0000c8d8  00001316 R_ARM_JUMP_SLOT   00003ce4   _dl_copy_fixups
0000c8dc  00001916 R_ARM_JUMP_SLOT   00001244   _dl_parse_relocation_i
0000c8e0  00001a16 R_ARM_JUMP_SLOT   00002b94   _dl_find_hash
0000c8e4  00001b16 R_ARM_JUMP_SLOT   00002858   _dl_debug_state
0000c8e8  00001f16 R_ARM_JUMP_SLOT   0000295c   _dl_elf_hash
0000c8ec  00002116 R_ARM_JUMP_SLOT   00003040   _dl_check_if_named_lib
0000c8f0  00002316 R_ARM_JUMP_SLOT   00004140   _dl_malloc
0000c8f4  00002616 R_ARM_JUMP_SLOT   000033e0   _dl_load_elf_shared_li
0000c8f8  00002916 R_ARM_JUMP_SLOT   00001288   _dl_parse_copy_informa
0000c8fc  00002e16 R_ARM_JUMP_SLOT   00002994   _dl_check_hashed_files
0000c900  00003316 R_ARM_JUMP_SLOT   00004230   _dl_fixup
0000c904  00003416 R_ARM_JUMP_SLOT   00003d40   _dl_dprintf
0000c908  00003516 R_ARM_JUMP_SLOT   00001208   _dl_parse_lazy_relocat
0000c90c  00003616 R_ARM_JUMP_SLOT   000040dc   _dl_strdup
0000c910  00003816 R_ARM_JUMP_SLOT   00002a58   _dl_add_elf_hash_table
0000c914  00003916 R_ARM_JUMP_SLOT   0000285c   _dl_getenv








On Mon, 2004-05-10 at 13:13, David Poole wrote:
> Could you post a readelf -r of your ld-uClibc-0.9.26.so?
> 
> Here's the relocation causing me problems (the R_ARM_PC24):
> 
> Relocation section '.rel.dyn' at offset 0xa9c contains 75 entries:
>   Offset     Info    Type            Sym.Value  Sym. Name
> 
> 00000e88  00002001 R_ARM_PC24        00001040   _dl_linux_resolver
> 
> Offset 0x0e88 is in .text which is read-execute but not write.
> 
> Section Headers:
>    [Nr] Name              Type            Addr     Off    Size   ES Flg 
> Lk Inf Al
>    [ 0]                   NULL            00000000 000000 000000 00      
> 0   0  0
>    [ 1] .hash             HASH            00000094 000094 000228 04   A  
> 2   0  4
>    [ 2] .dynsym           DYNSYM          000002bc 0002bc 000450 10   A  
> 3   d  4
>    [ 3] .dynstr           STRTAB          0000070c 00070c 000390 00   A  
> 0   0  1
>    [ 4] .rel.dyn          REL             00000a9c 000a9c 000258 08   A  
> 2   0  4
>    [ 5] .rel.plt          REL             00000cf4 000cf4 000090 08   A  
> 2   6  4
>    [ 6] .plt              PROGBITS        00000d84 000d84 0000ec 04  AX  
> 0   0  4
>    [ 7] .text             PROGBITS        00000e70 000e70 005f88 00  AX  
> 0   0 16 <----
>    [ 8] .rodata           PROGBITS        00006df8 006df8 000f08 00   A  
> 0   0  4
>    [ 9] .data             PROGBITS        0000fd00 007d00 00040c 00  WA  
> 0   0  4
>    [10] .dynamic          DYNAMIC         0001010c 00810c 000098 08  WA  
> 3   0  4
>    [11] .got              PROGBITS        000101a4 0081a4 0000d0 04  WA  
> 0   0  4
>    [12] .bss              NOBITS          00010274 008274 00007c 00  WA  
> 0   0  4
>    [13] .shstrtab         STRTAB          00000000 008274 00006a 00      
> 0   0  1
>    [14] .symtab           SYMTAB          00000000 008560 000480 10     
> 15  10  4
>    [15] .strtab           STRTAB          00000000 0089e0 00038c 00      
> 0   0  1
> 
> When PERFORM_BOOTSTRAP_RELOC()-arm/dl-startup.h tries to write a new 
> 24-bit offset into the 'bl _dl_linux_resolver' instruction, the MMU 
> faults (as it should).
> 
> On May 10, 2004, at 1:59 PM, David Meggy wrote:
> 
> > On Mon, 2004-05-10 at 12:11, David Poole wrote:
> >> Is there anyone using uClibc ARM shared libraries and not having this
> >> problem? I'd like to understand this problem better but I'm stymied by
> >> my dynamic linker ignorance.
> >
> > That would be me, I only had a brief dl issue a long time ago, but that
> > was fixed shortly after.
> >
> > I have my own script to build toolchains, and I use gcc 3.3.3, binutils
> > 2.14, uClibc 0.9.26
> >
> > David
> >
> > -- 
> > ~~~~~~~~~~~~~~~~~~~~~~~~
> >      David Meggy
> >      Engineering
> >
> > Technical Solutions Inc.
> > Unit #1 7157 Honeyman St
> > Delta BC Canada, V4G 1E2
> >      www.techsol.ca
> >
> > eMail: dmeggy at techsol.ca
> > Tel: 604 946 TECH (8324)
> > Fax: 604 946 6445
> > ~~~~~~~~~~~~~~~~~~~~~~~~
> >
> >
> >
> -- 
> David Poole <dpoole at mobl.com>
> Mobility Electronics, Idaho   http://www.mobl.com
> 960 Broadway Avenue, Suite 300
> Boise, ID  83706
> 
-- 
~~~~~~~~~~~~~~~~~~~~~~~~
     David Meggy
     Engineering

Technical Solutions Inc.
Unit #1 7157 Honeyman St
Delta BC Canada, V4G 1E2
     www.techsol.ca

eMail: dmeggy at techsol.ca
Tel: 604 946 TECH (8324)
Fax: 604 946 6445
~~~~~~~~~~~~~~~~~~~~~~~~




More information about the uClibc mailing list