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]

Multigot mechanism and a related MIPS linker error


Posting again with? the proper subject title -

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
???????????????? shankar


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