This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
RE: MIPS: firefox binary with broken MIPS_RLD_MAP tag
- From: "Fu, Chao-Ying" <fu at mips dot com>
- To: Manuel Lauss <manuel dot lauss at googlemail dot com>, "binutils at sourceware dot org" <binutils at sourceware dot org>
- Date: Thu, 1 Dec 2011 21:30:53 +0000
- Subject: RE: MIPS: firefox binary with broken MIPS_RLD_MAP tag
- References: <CAOLZvyFy4FjXgw3iZ3pEd4zme4Y+Zu0v5NJt3NJp49mwLQhuTA@mail.gmail.com>
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