MIPS: firefox binary with broken MIPS_RLD_MAP tag
Fu, Chao-Ying
fu@mips.com
Thu Dec 1 21:31:00 GMT 2011
Manuel Lauss wrote:
> Building firefox-8.0 natively on MIPS results in a broken binary which
> segfaults during startup in libc, due to a zero "MIPS_RLD_MAP" tag in
> the dynamic section:
>
> Dynamic section at offset 0x1dc contains 31 entries:
> Tag Type Name/Value
> 0x00000001 (NEEDED) Shared library:
> [libpthread.so.0]
> 0x00000001 (NEEDED) Shared library: [libdl.so.2]
> 0x00000001 (NEEDED) Shared library:
> [libstdc++.so.6]
> 0x00000001 (NEEDED) Shared library:
> [libgcc_s.so.1]
> 0x00000001 (NEEDED) Shared library: [libc.so.6]
> 0x00000001 (NEEDED) Shared library: [ld.so.1]
> 0x0000000c (INIT) 0x401098
> 0x0000000d (FINI) 0x40dc10
> 0x00000004 (HASH) 0x4002fc
> 0x00000005 (STRTAB) 0x400b14
> 0x00000006 (SYMTAB) 0x400664
> 0x0000000a (STRSZ) 948 (bytes)
> 0x0000000b (SYMENT) 16 (bytes)
> 0x70000016 (MIPS_RLD_MAP) 0
> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
> 0x00000015 (DEBUG) 0x0
> 0x00000003 (PLTGOT) 0x41f060
> 0x70000001 (MIPS_RLD_VERSION) 1
> 0x70000005 (MIPS_FLAGS) NOTPOT
> 0x70000006 (MIPS_BASE_ADDRESS) 0x400000
> 0x7000000a (MIPS_LOCAL_GOTNO) 49
> 0x70000011 (MIPS_SYMTABNO) 75
> 0x70000012 (MIPS_UNREFEXTNO) 42
> [...]
>
> After removing the broken 0x70000016 tag firefox loads and runs.
> (gcc-4.6.2, binutils-2.22, glibc-2.14.1).
>
> Please have look at this.
>
> Thanks!
> Manuel Lauss
>
I hit similar issues some time ago. I found that if I keep __RLD_MAP global in version scripts,
programs (eg: llvm, firefox) can start on MIPS Debian Linux. Just FYI.
Thanks a lot!
Regards,
Chao-ying
More information about the Binutils
mailing list