This is the mail archive of the
mailing list for the binutils project.
[RFA] MIPS_TEXT symbols should be associated to .text section?
- From: David Anderson <davea at quasar dot engr dot sgi dot com>
- To: binutils at sources dot redhat dot com
- Cc: gdb-patches at sources dot redhat dot com
- Date: Thu, 22 Jul 2004 08:44:07 -0700 (PDT)
- Subject: [RFA] MIPS_TEXT symbols should be associated to .text section?
oel Brobecker <firstname.lastname@example.org> writes:
>I was looking at a fairly high number of regressions in the GDB
>testsuite on mips-irix, and one of them was caused by the fact
>that we searched a symbol by its address and that we match the
>possible candidates against the expected section.
>For instance, consider the following symbol "main" from my executable.
>nm on this symbol says:
>  | 268441176| 252|FUNC |GLOB |DEFAULT |MIPS_TEXT|main
>GDB is searching the symbol table for a symbol stored at 0x10001658
>(268441176 = 0x10001658). The first thing it does is going through
>all the sections of the executable, and determine that there is only
>one section that contains this address: .text. So it figures that
>if a symbol matches this address, it will belong to that section.
>Not knowing IRIX enough, I am not 110% sure that symbol main is indeed
>in section .text, but it seems pretty obvious: the address range of
>the section matches, .text is the only text section, the MIPS_TEXT
>shndx name... I read various man pages, but couldn't find anything
>that explicitly says MIPS_TEXT = .text section.
SHN_MIPS_TEXT is not mentioned in the ABI books (for any IRIX ABI).
It is set as the section for defined externals in text (normally
this means instructions). (set by ld(1) I mean.)
Nor is SHN_MIPS_DATA (used similarly, but for non-instruction externals).
IRIX ld has created things this way for a very long time.
It should be documented, but is not. I will see about
documenting it. I don't know why it is done this way.
Hope this helps.
David B. Anderson davea at sgi dot com http://reality.sgiweb.org/davea