This is the mail archive of the binutils@sourceware.org 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]

Queries related to MIPS cross Linker


For our MIPS cross-compiler,
gcc version is  4.2.0
binutils version is 2.17.90.

When our application  tries to link with third-party library,  the
MIPS linker reports  failure as
"ld: Bad value"

The library is not available to us.

Since the linking passes after applying the patches  given by Richard
Sandiford at http://sourceware.org/ml/binutils/2008-06/msg00270.html ,
we  figured that the error has something to do with multigot feature.
The description of the patch is difficult for us to understand.

We want to reproduce the failure with a test program.  As  a first
step, we are are trying to access  many extern symbols
from main().
But when the GOT table size  exceeds 64 Kb,  the linker fails with
message such as :
"relocation truncated to fit: R_MIPS_GOT16 against `global_variable__d13155'"


With less than 64 Kb GOT ,  I can see that the binary is in multigot
mode. (Each function's prolog is assigning
a different value for gp reg. )

a) In multigot mode, why should linker fail to create larger-than-64Kb
 GOT ?   The very purpose of multigot
is to overcome this limit, isn't it ?

b) I looked at another application built in our company with same
toolchain.  Its GOT is 188 Kb in size.
(There are about 33000 extern symbol entries in the GOT .) I  looked
at its linking options and did not find anything special.
I looked  at its binary.  It is NOT in xgot mode.  Any clues ?

c) For the above binary mentioned in  ,  I can see lot of relocation
entries in .rel.dyn for the GOT table fixup.  From what I know,
in MIPS,  reloc entries are not needed for GOT relocation.  Why would
the linker output those for this binary?

d) I want to understand the ld test-suite
(/toolchain/testsuite/binutils/testsuite/ld/ld-mips-elf)  Is there any
writeup  somewhere ?

                 thanks a lot
                 naveen


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