This is the mail archive of the mailing list for the binutils project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFA] MIPS_TEXT symbols should be associated to .text section?

oel Brobecker <> 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:
>    [76]    | 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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]